Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Control.Monad.Cont
- cataCps :: (Traversable f) => (f a -> a) -> Fix f -> a
- cataCps algebra expr = runCont (recur algebra expr) id
- recur :: (Traversable f) => (f a -> a) -> Fix f -> Cont a a
- recur algebra (Fix expr) = do
- sub <- sequence $ fmap (recur algebra) expr
- return (algebra sub)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement