Module

Control.Subcategory.Functor.HasBind

#HasBind

class HasBind c m  where

Members

Instances

#(>>=)

Operator alias for Control.Subcategory.Functor.HasBind.bind (left-associative / precedence 1)

#bind'

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

#(>>>=)

Operator alias for Control.Subcategory.Functor.HasBind.bind (left-associative / precedence 1)

#bindFlipped

bindFlipped :: forall c m v0 v1. HasBind c m => ObjectOf c v0 => ObjectOf c (m v1) => c v0 (m v1) -> m v0 -> m v1

#(=<<)

Operator alias for Control.Subcategory.Functor.HasBind.bindFlipped (right-associative / precedence 1)

#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)) => Slackable c => c v0 (m v1) -> c v1 (m v2) -> v0 -> m v2

#(>=>)

Operator alias for Control.Subcategory.Functor.HasBind.composeKleisli (right-associative / precedence 1)

#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)) => Slackable c => c v1 (m v2) -> c v0 (m v1) -> v0 -> m v2

#(<=<)

Operator alias for Control.Subcategory.Functor.HasBind.composeKleisliFlipped (right-associative / precedence 1)

#ifM

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

#join

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

Modules