fx-0.10: Horizontally composable effects

Safe HaskellNone
LanguageHaskell2010

Fx.EitherEffect

Contents

Synopsis

Documentation

data EitherEffect leftEffect rightEffect context result Source #

A sum of two effects. Allows for horizontal composition of monads instead of nesting as with monad transformers.

To execute it use eitherEffect.

liftLeft :: left result -> EitherEffect left right either result Source #

Lift the first of the two effects.

liftRight :: right result -> EitherEffect left right either result Source #

Lift the second of the two effects.

Orphan instances

Monad either => Monad (EitherEffect left right either) Source # 

Methods

(>>=) :: EitherEffect left right either a -> (a -> EitherEffect left right either b) -> EitherEffect left right either b #

(>>) :: EitherEffect left right either a -> EitherEffect left right either b -> EitherEffect left right either b #

return :: a -> EitherEffect left right either a #

fail :: String -> EitherEffect left right either a #

Functor either => Functor (EitherEffect left right either) Source # 

Methods

fmap :: (a -> b) -> EitherEffect left right either a -> EitherEffect left right either b #

(<$) :: a -> EitherEffect left right either b -> EitherEffect left right either a #

Applicative either => Applicative (EitherEffect left right either) Source # 

Methods

pure :: a -> EitherEffect left right either a #

(<*>) :: EitherEffect left right either (a -> b) -> EitherEffect left right either a -> EitherEffect left right either b #

liftA2 :: (a -> b -> c) -> EitherEffect left right either a -> EitherEffect left right either b -> EitherEffect left right either c #

(*>) :: EitherEffect left right either a -> EitherEffect left right either b -> EitherEffect left right either b #

(<*) :: EitherEffect left right either a -> EitherEffect left right either b -> EitherEffect left right either a #

MonadIO either => MonadIO (EitherEffect left right either) Source # 

Methods

liftIO :: IO a -> EitherEffect left right either a #