K
Size: a a a
K
ЗП
ЗП
(a -> b -> b) -> b -> [a] -> b
? (свёрточные алгебры?)ЗП
depth :: forall f a. Functor f => Foldable f => Cofree f a -> Int
depth = cata depthAlg
depths :: forall f a. Functor f => Foldable f => Cofree f a -> Cofree (EnvT a f) Int
depths = synthCata depthAlg
K
data Expr a where
Var :: Name -> Expr a
Let :: Decl a -> Expr a -> Expr a
data Decl expr where
Val :: Name -> expr -> Decl expr
Cofree Expr Info
, то у Decl
никакого Info
не будетЗП
data Expr a where
Var :: Name -> Expr a
Let :: Decl a -> Expr a -> Expr a
data Decl expr where
Val :: Name -> expr -> Decl expr
Cofree Expr Info
, то у Decl
никакого Info
не будетЗП
AA
AA
ЗП
Y
MK
AA
MK
к
ЗП
ЗП
к