Module

Control.Subcategory.Endofunctor.Monad

#Monad

class (Applicative c m, Bind c m) <= Monad c m 

Instances

#ap

ap :: forall c m v0 v1. HasBind c m => HasPure c m => ObjectOf c v0 => ObjectOf c v1 => ObjectOf c (m v0) => ObjectOf c (m v1) => ObjectOf c (c v0 v1) => ObjectOf c (m (c v0 v1)) => Restrictable Function c => Slackable c => m (c v0 v1) -> c (m v0) (m v1)

#liftM1

liftM1 :: forall c m v0 v1. HasBind c m => HasPure c m => ObjectOf c v0 => ObjectOf c v1 => ObjectOf c (m v0) => ObjectOf c (m v1) => Restrictable Function c => Slackable c => c v0 v1 -> c (m v0) (m v1)

#whenM

whenM :: forall c m u. HasBind c m => HasPure c m => HasUnit c u => HasUnpoint c u => ObjectOf c Boolean => ObjectOf c (m Boolean) => ObjectOf c (m u) => Restrictable Function c => Slackable c => m Boolean -> c (m u) (m u)

#unlessM

unlessM :: forall c m u. HasBind c m => HasPure c m => HasUnit c u => HasUnpoint c u => ObjectOf c Boolean => ObjectOf c (m Boolean) => ObjectOf c (m u) => Restrictable Function c => Slackable c => m Boolean -> c (m u) (m u)

Modules