let flatten: Monad.t(Monad.t('a)) => Monad.t('a);let compose_kliesli: ('a => Monad.t('b)) => ('b => Monad.t('c)) => 'a => Monad.t('c);let compose_kliesli_flipped: ('b => Monad.t('c)) => ('a => Monad.t('b)) => 'a => Monad.t('c);let if_m: Monad.t(bool) => Monad.t('a) => Monad.t('a) => Monad.t('a);let liftM1: ('a => 'b) => Monad.t('a) => Monad.t('b);let ap: Monad.t(('a => 'b)) => Monad.t('a) => Monad.t('b);let when_: Monad.t(bool) => Monad.t(unit) => Monad.t(unit);let unless: Monad.t(bool) => Monad.t(unit) => Monad.t(unit);