Monad - Definition of Monad with Monoid
Monad is a binding function to connect two functions where are different types between returning value and input argument. So Monad will allow to compose two incompatible functions.
A monad is just a monoid in the category of endofunctors.
This is because Monad has the following properties
1. Closure
2. Associative
3. Identity