added monads and Kleisli triples