I : Type -> Type The identity function specialized to `Type`.
Totality: total
Visibility: public export0 Arrs : (Type -> Type) -> Type -> Type -> Type A type aligned sequence of bind operations
over `Free f`.
Totality: total
Visibility: public exportdata 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: exporttoView : Free f a -> FreeView f a Converts a free monad to a view representing it.
Amortized O(1).
Totality: total
Visibility: exportlift : f a -> Free f a Lift an arbitrary functor into a free monad.
Totality: total
Visibility: exportwrap : 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: exportresume : 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: exportmapK : (m t -> n t) -> Free m a -> Free n a Apply a morphism to change a free monad's functor.
Totality: total
Visibility: exportfoldMap : 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: exportrun : Free I a -> a Run a pure computation in a stack-safe manner.
Totality: total
Visibility: exportrunM : Functor m => MonadRec n => (m (Free m a) -> n (Free m a)) -> Free m a -> n a- Totality: total
Visibility: export