(=<<) :: (a -> m b) -> m a -> m b
id :: a -> a
join :: m (m a) -> m a
So shouldn't,
(=<<) id
give an error because,
id :: a -> a
and not,
id :: a -> m a
Doesn't (=<<) expect,
(something -> m anything)
as its first argument?
m a' -> m a' is also a kind of a -> a, so we can have
id :: m a' -> m a' -- a = m a'
(=<<) :: (m a' -> m a') -> m (m a') -> m a' -- a = m a', b = a'
(=<<) id :: m (m a') -> m a'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With