- fmap : (a -> b) -> m a -> m b
- f : a -> b
- mv : m a
- fmap f mv : m b
- pure : a -> m a
- v : a
- pure v : m a
- ap : m (a -> b) -> m a -> m b
- f : m (a -> b)
- mv : m a
- ap f mv : m b
- zero : m a
- plus : m a -> m a -> m a
- mv : m a
- mw : m a
- plus mv mw : m a
- return : a -> m a
- v : a
- return v : m a
- bind : m a -> (a -> m b) -> m b
- mv : m a
- f : a -> m b
- bind mv f : m b