Thanks for great video, it has been best introduction to monads I've seen so far! Most of the "monad tutorials" really suck and they all forget about the outer lambda in composition Composability is explained perfectly, however composability could be achieved by just having a proper type signatures! Imagine you have semigroup: set of objects and associative operation. You don't have identity, but you still closed against composition. So it is not clear what's the purpose of "monadic rules" - why associativity and identity are required? What changes if (>>=) is not associative? What can't be achieved when there is no 'return'? I hope it will be a good be a good theme for a next lecture.