Monad type signatures
I needed to remind myself of the implementation of Monads again and used this description of the List monad by Bartosz Milewski as a memory juggler. (In case you are wondering why I’m looking at this stay tuned for a future post on schedule algebra.)
To summarize the important function signatures:
join :: M (M a) -> M a
return :: a -> M a
fmap :: (a -> b) -> M a -> M b
bind :: M a -> (a -> M b) -> M b