2022-09-24 14:43:49 +03:00
1/1: Building DeriveTraversable (DeriveTraversable.idr)
LOG derive.traversable.clauses:1:
traverseList : {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> List a -> f (List b)
traverseList f Nil = pure Nil
traverseList f (x1 :: x2) = ((::) <$> (f x1)) <*> (traverseList f x2)
LOG derive.traversable.clauses:1:
traverseMaybe : {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> Maybe a -> f (Maybe b)
traverseMaybe f Nothing = pure Nothing
traverseMaybe f (Just x1) = Just <$> (f x1)
LOG derive.traversable.clauses:1:
traverseEither : {0 err : _} -> {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> Either err a -> f (Either err b)
traverseEither f (Left x2) = pure (Left x2)
traverseEither f (Right x2) = Right <$> (f x2)
LOG derive.traversable.clauses:1:
traversePair : {0 a : _} -> {0 a0, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a0 -> f b) -> Pair a a0 -> f (Pair a b)
traversePair f (MkPair x2 x3) = (MkPair x2) <$> (f x3)
LOG derive.traversable.clauses:1:
traverseConstant : {0 a : _} -> {0 a0, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a0 -> f b) -> Constant a a0 -> f (Constant a b)
traverseConstant f (MkConstant x2) = pure (MkConstant x2)
LOG derive.traversable.clauses:1:
traverseVect : {0 n : _} -> {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> Vect n a -> f (Vect n b)
traverseVect f Nil = pure Nil
traverseVect f (x2 :: x3) = ((::) <$> (f x2)) <*> (traverseVect f x3)
LOG derive.traversable.clauses:1:
traverseMatrix : {0 m, n : _} -> {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> Matrix m n a -> f (Matrix m n b)
traverseMatrix f (MkMatrix x3) = MkMatrix <$> (traverse (traverse f) x3)
LOG derive.traversable.clauses:1:
traverseTm : {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> Tm a -> f (Tm b)
traverseTm f (Var x1) = Var <$> (f x1)
traverseTm f (Call x2 x3) = (Call x2) <$> (traverse (assert_total (traverseTm f)) x3)
traverseTm f (Lam x1) = Lam <$> (traverseTm (traverse f) x1)
LOG derive.traversable.clauses:1:
traverseTree : {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> Tree a -> f (Tree b)
traverseTree f (Leaf x1) = Leaf <$> (f x1)
traverseTree f (Node x1) = Node <$> (assert_total (traverse f x1))
LOG derive.traversable.clauses:1:
traverseForest : {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> Forest a -> f (Forest b)
traverseForest f Empty = pure Empty
traverseForest f (Plant x1 x2) = (Plant <$> (assert_total (traverse f x1))) <*> (traverseForest f x2)
LOG derive.traversable.clauses:1:
traverseList1 : {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> List1 a -> f (List1 b)
traverseList1 f (MkList1 x1) = MkList1 <$> (bitraverse f (traverse (assert_total (traverseList1 f))) x1)
LOG derive.traversable.clauses:1:
traverseFull : {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> Full a -> f (Full b)
traverseFull f (Leaf x1) = Leaf <$> (f x1)
traverseFull f (Node x1) = Node <$> (traverseFull (bitraverse f f) x1)
LOG derive.traversable.clauses:1:
traverseLAZY : {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> LAZY a -> f (LAZY b)
traverseLAZY f (MkLAZY x1) = MkLAZY <$> (delay <$> (f x1))
LOG derive.traversable.clauses:1:
traverseRose : {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> Rose a -> f (Rose b)
traverseRose f (Node x1) = Node <$> (traverse (\ eta => delay <$> (assert_total (traverseRose f eta))) x1)
LOG derive.traversable.assumption:10: I am assuming that the parameter m is a Traversable
LOG derive.traversable.clauses:1:
traverseMaybeT : {0 m : _} -> Traversable m => {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> MaybeT m a -> f (MaybeT m b)
traverseMaybeT f (MkMaybeT x2) = MkMaybeT <$> (traverse (traverse f) x2)
LOG derive.traversable.assumption:10: I am assuming that the parameter layer is a Bitraversable
LOG derive.traversable.clauses:1:
traverseTreeT : {0 layer : _} -> Bitraversable layer => {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> TreeT layer a -> f (TreeT layer b)
traverseTreeT f (MkTreeT x2) = MkTreeT <$> (bitraverse f (traverseTreeT f) x2)
LOG derive.traversable.clauses:1:
traverseTree : {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> Tree a -> f (Tree b)
traverseTree f (MkTree x1) = MkTree <$> (traverse f x1)
LOG derive.traversable.clauses:1:
traverseIVect : {0 m : _} -> {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> IVect {n = m} a -> f (IVect {n = m} b)
traverseIVect f (MkIVect x2) = MkIVect <$> (traverse f x2)
LOG derive.traversable.clauses:1:
2023-10-17 14:47:18 +03:00
traverseEqMap : {0 key, eq : _} -> {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> EqMap key {{conArg:13933} = eq} a -> f (EqMap key {{conArg:13933} = eq} b)
2022-09-24 14:43:49 +03:00
traverseEqMap f (MkEqMap x3) = MkEqMap <$> (traverse (traverse f) x3)
LOG derive.traversable.clauses:1:
traverseTree : {0 l : _} -> {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> Tree l a -> f (Tree l b)
traverseTree f (Leaf x2) = pure (Leaf x2)
traverseTree f (Node x2 x3 x4) = ((Node <$> (traverseTree f x2)) <*> (f x3)) <*> (traverseTree f x4)
LOG derive.traversable.clauses:1:
traverseTriple : {0 a, b : _} -> {0 a0, b0 : Type} -> {0 f : Type -> Type} -> Applicative f => (a0 -> f b0) -> Triple a b a0 -> f (Triple a b b0)
traverseTriple f (MkTriple x3 x4 x5) = (MkTriple x3 x4) <$> (f x5)
LOG derive.traversable.clauses:1:
traverseF : {0 a, b : Type} -> {0 f : Type -> Type} -> Applicative f => (a -> f b) -> F a -> f (F b)
traverseF f (MkF {x = x1} x2 x3 x4 {y = x5} x6 x7) = (((((\ y0 => \ y1 => \ y2 => MkF {x = y0} x2 y1 x4 {y = y2}) <$> (f x1)) <*> (f x3)) <*> (f x5)) <*> (f x6)) <*> (traverse f x7)