16 lines
301 B
Markdown
16 lines
301 B
Markdown
|
κατα-morphism: missing information retrieved
|
||
|
--------------------------------------------
|
||
|
|
||
|
~~~
|
||
|
type Algebra f a = f a -> a
|
||
|
instance Functor (StrF a) =
|
||
|
fmap f (Cons c x) = Cons c (f x)
|
||
|
fmap _ Nil = Nil
|
||
|
~~~
|
||
|
|
||
|
~~~
|
||
|
cata :: Functor f => Algebra f a -> Mu f -> a
|
||
|
cata f = f . fmap (cata f) . outF
|
||
|
~~~
|
||
|
|