These are chat archives for boostorg/hana

26th
Feb 2016
Louis Dionne
@ldionne
Feb 26 2016 20:44
Technically, a Monad is required to work with ANY type. The fact that it works with anything it what gives us some interesting guarantees (the free theorems). However, I do think it is possible to make a sound Monad that only works on a subset of types, by considering the subcategory formed by those types. But clearly those types have to include M(T) itself, because otherwise we'll encounter the definition problem we talked about before with flatten.