AG
Size: a a a
AG
АГ
АГ
AK
АГ
AK
АГ
AK
АГ
AK
AG
AG
ЗП
newtype Free f a = Free (forall g. Monad g => (forall x. f x -> g x) -> g a)и
data Free f a whereизоморфны, то что будет изоморфно в инишиал энкодинг для
Pure :: Free f a
Bind :: f (Free f a) -> Free f a
newtype Free c f a = Free (forall g. c g => (forall x. f x -> g x) -> g a)?
K
newtype Free f a = Free (forall g. Monad g => (forall x. f x -> g x) -> g a)и
data Free f a whereизоморфны, то что будет изоморфно в инишиал энкодинг для
Pure :: Free f a
Bind :: f (Free f a) -> Free f a
newtype Free c f a = Free (forall g. c g => (forall x. f x -> g x) -> g a)?
ЗП
K
ЗП
Monad (b :: * -> *) && (a -> b)K
newtype Free f a = Free (forall g. Monad g => (forall x. f x -> g x) -> g a)и
data Free f a whereизоморфны, то что будет изоморфно в инишиал энкодинг для
Pure :: Free f a
Bind :: f (Free f a) -> Free f a
newtype Free c f a = Free (forall g. c g => (forall x. f x -> g x) -> g a)?
Codensity - это частично применённое >>=, так что пытаться засунуть в него другие структуры несколько бессмысленно