тайпкласс, который определён двумя тайп конструкторами (хуй знает, может это и не два тайпконструктора) так, что если значение сделать монадичным и потом обратно, оно не поменяется
monad 1) //Monads are kind of types which have some fundamental ops(like a 'List') are: //unit(also called pure or apply). which construct a Monad out of a value or out of many values. //bind - transforms a monad of certain type parameter into a monad of another type parameter.