Окей, исправляю: структура с двумя операциями: ..., и тремя законами: 1) ... 2) ... 3) ...
структура с двумя операциями:
1) //unit(also called pure or apply). which construct a Monad out of a value or out of many values.
2) //bind - transforms a monad of certain type parameter into a monad of another type parameter.
, и тремя законами:
1) (left-identity) - unit(x).flatMap(f) == f(x)
2) (right-identity) - aMonadInstance.flatMap(unit) = aMonadInstance
3) and (associativity) - m.flatMap(f).flatmap(g) == m.flatMap(x => f(x).flatMap(g))