Module

Control.Subcategory.Endofunctor.HasBind

#HasBind

class HasBind c m  where

Members

Instances

#bind

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

#composeKleisli

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

#composeKleisliFlipped

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

#ifM

ifM :: forall c m v. HasBind c m => ObjectOf c Boolean => ObjectOf c (m Boolean) => ObjectOf c (m v) => ObjectOf c (c (m v) (m v)) => Restrictable Function c => Slackable c => m Boolean -> c (m v) (c (m v) (m v))

#join

join :: forall c m v. HasBind c m => HasPure c m => ObjectOf c v => ObjectOf c (m v) => ObjectOf c (m (m v)) => c (m (m v)) (m v)

Modules