Add Info module
Generalize monads with some constraint kinds