supply-chain-core-0.0.0.1: Composable request-response pipelines
Safe HaskellSafe-Inferred
LanguageGHC2021

SupplyChain.Core.FreeMonad

Description

 
Synopsis

Type

data FreeMonad f a Source #

Constructors

Step (FreePointedFunctor f a) 
forall x. Bind (FreeMonad f x) (x -> FreeMonad f a) 

Bundled Patterns

pattern Pure :: a -> FreeMonad f a 
pattern Map :: f x -> (x -> a) -> FreeMonad f a 

Instances

Instances details
Applicative (FreeMonad f) Source # 
Instance details

Defined in SupplyChain.Core.FreeMonad

Methods

pure :: a -> FreeMonad f a #

(<*>) :: FreeMonad f (a -> b) -> FreeMonad f a -> FreeMonad f b #

liftA2 :: (a -> b -> c) -> FreeMonad f a -> FreeMonad f b -> FreeMonad f c #

(*>) :: FreeMonad f a -> FreeMonad f b -> FreeMonad f b #

(<*) :: FreeMonad f a -> FreeMonad f b -> FreeMonad f a #

Functor (FreeMonad f) Source # 
Instance details

Defined in SupplyChain.Core.FreeMonad

Methods

fmap :: (a -> b) -> FreeMonad f a -> FreeMonad f b #

(<$) :: a -> FreeMonad f b -> FreeMonad f a #

Monad (FreeMonad f) Source # 
Instance details

Defined in SupplyChain.Core.FreeMonad

Methods

(>>=) :: FreeMonad f a -> (a -> FreeMonad f b) -> FreeMonad f b #

(>>) :: FreeMonad f a -> FreeMonad f b -> FreeMonad f b #

return :: a -> FreeMonad f a #

Running

run Source #

Arguments

:: Monad effect 
=> (forall x. f x -> effect x)

How to interpret f actions

-> FreeMonad f a 
-> effect a 

eval Source #

Arguments

:: (forall x. f x -> x)

How to interpret f actions

-> FreeMonad f a 
-> a 

Alteration

alter :: (forall x. f x -> FreeMonad f' x) -> FreeMonad f a -> FreeMonad f' a Source #