About Free Monad

Free Monad

Free monad allows us to construct a monad from a functor:

1
data Free f r = Free (f (Free f r)) | Pure r
1
2
3
4
instance (Functor f) => Monad (Free f) where
return = Pure
Pure a >>= k = k a
Free m >>= k = Free ((>>= k) <$> m)

Free Monad gives you a free monad for a given functor.

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×