Законы для монад

Чтобы монада работала как следует, чтобы она позволяла организовать цепочки вычислений требуется чтобы представитель класса Monad удовлетворял определенным законам.