funflow-1.5.0: Workflows with arrows

Safe HaskellSafe
LanguageHaskell2010

Control.Arrow.AppArrow

Description

This modules defines the composition of an applicative functor and an arrow, which is always an arrow.

Documentation

newtype AppArrow app arr a b Source #

Constructors

AppArrow 

Fields

Instances
(Applicative app, ArrowError ex (AppArrow app (arr eff ex)), ArrowFlow eff ex (arr eff ex)) => ArrowFlow eff ex (AppArrow app (arr eff ex)) Source # 
Instance details

Defined in Control.Funflow.Class

Methods

step' :: Properties a b -> (a -> b) -> AppArrow app (arr eff ex) a b Source #

stepIO' :: Properties a b -> (a -> IO b) -> AppArrow app (arr eff ex) a b Source #

external :: (a -> ExternalTask) -> AppArrow app (arr eff ex) a Item Source #

external' :: ExternalProperties a -> (a -> ExternalTask) -> AppArrow app (arr eff ex) a Item Source #

wrap' :: Properties a b -> eff a b -> AppArrow app (arr eff ex) a b Source #

putInStore :: ContentHashable IO a => (Path Abs Dir -> a -> IO ()) -> AppArrow app (arr eff ex) a Item Source #

getFromStore :: (Path Abs t -> IO a) -> AppArrow app (arr eff ex) (Content t) a Source #

internalManipulateStore :: (ContentStore -> a -> IO b) -> AppArrow app (arr eff ex) a b Source #

(ArrowError ex arr, Monoid w) => ArrowError ex (AppArrow (Writer w) arr :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Arrow.Free

Methods

try :: AppArrow (Writer w) arr e c -> AppArrow (Writer w) arr e (Either ex c) Source #

(ArrowError ex arr, Monoid w) => ArrowError ex (AppArrow (Writer w) arr :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Arrow.Free

Methods

try :: AppArrow (Writer w) arr e c -> AppArrow (Writer w) arr e (Either ex c) Source #

ArrowError ex arr => ArrowError ex (AppArrow (Reader r) arr :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Arrow.Free

Methods

try :: AppArrow (Reader r) arr e c -> AppArrow (Reader r) arr e (Either ex c) Source #

(Applicative app, Category cat) => Category (AppArrow app cat :: Type -> Type -> Type) Source # 
Instance details

Defined in Control.Arrow.AppArrow

Methods

id :: AppArrow app cat a a #

(.) :: AppArrow app cat b c -> AppArrow app cat a b -> AppArrow app cat a c #

(Applicative app, Arrow arr) => Arrow (AppArrow app arr) Source # 
Instance details

Defined in Control.Arrow.AppArrow

Methods

arr :: (b -> c) -> AppArrow app arr b c #

first :: AppArrow app arr b c -> AppArrow app arr (b, d) (c, d) #

second :: AppArrow app arr b c -> AppArrow app arr (d, b) (d, c) #

(***) :: AppArrow app arr b c -> AppArrow app arr b' c' -> AppArrow app arr (b, b') (c, c') #

(&&&) :: AppArrow app arr b c -> AppArrow app arr b c' -> AppArrow app arr b (c, c') #

(Applicative app, ArrowChoice arr) => ArrowChoice (AppArrow app arr) Source # 
Instance details

Defined in Control.Arrow.AppArrow

Methods

left :: AppArrow app arr b c -> AppArrow app arr (Either b d) (Either c d) #

right :: AppArrow app arr b c -> AppArrow app arr (Either d b) (Either d c) #

(+++) :: AppArrow app arr b c -> AppArrow app arr b' c' -> AppArrow app arr (Either b b') (Either c c') #

(|||) :: AppArrow app arr b d -> AppArrow app arr c d -> AppArrow app arr (Either b c) d #

(Applicative f, Arrow arr) => Functor (AppArrow f arr t) Source # 
Instance details

Defined in Control.Arrow.AppArrow

Methods

fmap :: (a -> b) -> AppArrow f arr t a -> AppArrow f arr t b #

(<$) :: a -> AppArrow f arr t b -> AppArrow f arr t a #

(Applicative app, Arrow arr) => Applicative (AppArrow app arr t) Source # 
Instance details

Defined in Control.Arrow.AppArrow

Methods

pure :: a -> AppArrow app arr t a #

(<*>) :: AppArrow app arr t (a -> b) -> AppArrow app arr t a -> AppArrow app arr t b #

liftA2 :: (a -> b -> c) -> AppArrow app arr t a -> AppArrow app arr t b -> AppArrow app arr t c #

(*>) :: AppArrow app arr t a -> AppArrow app arr t b -> AppArrow app arr t b #

(<*) :: AppArrow app arr t a -> AppArrow app arr t b -> AppArrow app arr t a #

appArrow :: Applicative app => arr a b -> AppArrow app arr a b Source #