Idris2Doc : Control.Monad.Free

Control.Monad.Free

(source)

Definitions

I : Type -> Type
  The identity function specialized to `Type`.

Totality: total
Visibility: public export
0 Arrs : (Type -> Type) -> Type -> Type -> Type
  A type aligned sequence of bind operations
over `Free f`.

Totality: total
Visibility: public export
data Free : (Type -> Type) -> Type -> Type
Totality: total
Visibility: public export
Constructor: 
MkFree : FreeView f t -> Arrs f t a -> Free f a

Hints:
Applicative (Free f)
Functor (Free f)
HasIO m => HasIO (Free m)
Monad (Free f)
MonadRec (Free f)
data FreeView : (Type -> Type) -> Type -> Type
Totality: total
Visibility: public export
Constructors:
Pure : a -> FreeView f a
Bind : f b -> (b -> Free f a) -> FreeView f a
fromView : FreeView f a -> Free f a
  Converts a view to the corresponding free monad. O(1).

Totality: total
Visibility: export
toView : Free f a -> FreeView f a
  Converts a free monad to a view representing it.
Amortized O(1).

Totality: total
Visibility: export
lift : f a -> Free f a
  Lift an arbitrary functor into a free monad.

Totality: total
Visibility: export
wrap : f (Free f a) -> Free f a
Totality: total
Visibility: export
substFree : (f x -> Free g x) -> Free f a -> Free g a
Totality: total
Visibility: export
resume' : (f b -> (b -> Free f a) -> r) -> (a -> r) -> Free f a -> r
  Unwraps a single layer of `f`, providing the continuation.
Amortized O(1).

Totality: total
Visibility: export
resume : Functor f => Free f a -> Either (f (Free f a)) a
  Unwraps a single layer of the functor `f`.
Amortized O(1).

Totality: total
Visibility: export
mapK : (m t -> n t) -> Free m a -> Free n a
  Apply a morphism to change a free monad's functor.

Totality: total
Visibility: export
foldMap : MonadRec m => (f x -> m x) -> Free f a -> m a
  Run a computation described as a free monad in
a stack safe manner.

Totality: total
Visibility: export
run : Free I a -> a
  Run a pure computation in a stack-safe manner.

Totality: total
Visibility: export
runM : Functor m => MonadRec n => (m (Free m a) -> n (Free m a)) -> Free m a -> n a
Totality: total
Visibility: export