ЗП
FreeMon f a
?forall c d. FreeMon f c -> FreeMon f d -> (c -> d -> a) -> FreeMon f b
Size: a a a
ЗП
FreeMon f a
?forall c d. FreeMon f c -> FreeMon f d -> (c -> d -> a) -> FreeMon f b
Oℕ
FreeMon f a
?forall c d. FreeMon f c -> FreeMon f d -> (c -> d -> a) -> FreeMon f b
ЗП
forall c d. FreeMon f c -> FreeMon f d -> (c -> d -> a) -> FreeMon f a
?Oℕ
ЗП
Oℕ
ЗП
Oℕ
ЗП
Oℕ
Oℕ
Oℕ
ЗП
Day1 f g a = forall b. Day1 (f (b -> a)) (g b)
Day2 f g a = forall b. Day2 (g (b -> a)) (f b)
Oℕ
ЗП
data HFree (h :: (k -> *) -> (k -> *) -> (k -> *)) i f a = HDone (i a) | HMore (h f (HFree h i f) a)
FreeA = HFree Day Identity
FreeF = HFree Compose Identity
Oℕ
Oℕ
Oℕ
Oℕ
Oℕ
Day1 f g a = forall b. Day1 (f (b -> a)) (g b)
Day2 f g a = forall b. Day2 (g (b -> a)) (f b)
Splice :: f (FreeMon f b) -> (forall a . FreeMon f (a -> b) -> FreeMon f b -> FreeMon f b) -> FreeMon f b