Monad is a way to preserve symmetries in the space of functions while allow maximal compositionality.