-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A basic framework for effect systems based on effects represented by GADTs.
--
-- A basic framework for a Haskell effect system library based on
-- GADTs-based effect representations with a style that separates
-- first-order effects and higher-order effects.
--
-- This library set was created by being separated from the Heftia
-- extensible effects library.
@package data-effects
@version 0.1.0.0
module Data.Effect.Writer
data Tell w a
[Tell] :: w -> Tell w ()
data WriterH w f a
[Listen] :: f a -> WriterH w f (w, a)
[Censor] :: (w -> w) -> f a -> WriterH w f a
type LTell w_aabF = LiftIns (Tell w_aabF)
censor'' :: forall key_aalV (w_aabC :: Type) (a_aabE :: Type) f_aabD. SendSigBy key_aalV (WriterH w_aabC) f_aabD => (w_aabC -> w_aabC) -> f_aabD a_aabE -> f_aabD a_aabE
censor' :: forall tag_aalS (w_aabC :: Type) (a_aabE :: Type) f_aabD. SendSig (TagH (WriterH w_aabC) tag_aalS) f_aabD => (w_aabC -> w_aabC) -> f_aabD a_aabE -> f_aabD a_aabE
censor :: forall (w_aabC :: Type) (a_aabE :: Type) f_aabD. SendSig (WriterH w_aabC) f_aabD => (w_aabC -> w_aabC) -> f_aabD a_aabE -> f_aabD a_aabE
listen'' :: forall key_aalO (a_X0 :: Type) (w_aabB :: Type) f_aabz. SendSigBy key_aalO (WriterH w_aabB) f_aabz => f_aabz a_X0 -> f_aabz (w_aabB, a_X0)
listen' :: forall tag_aalM (a_X0 :: Type) (w_aabB :: Type) f_aabz. SendSig (TagH (WriterH w_aabB) tag_aalM) f_aabz => f_aabz a_X0 -> f_aabz (w_aabB, a_X0)
listen :: forall (a_X0 :: Type) (w_aabB :: Type) f_aabz. SendSig (WriterH w_aabB) f_aabz => f_aabz a_X0 -> f_aabz (w_aabB, a_X0)
pattern LTell :: () => a_aalF ~ () => w_aabH -> LiftIns (Tell w_aabH) f_aalE a_aalF
tell'' :: forall key_aalA (w_aabH :: Type) f_aalB. SendInsBy key_aalA (Tell w_aabH) f_aalB => w_aabH -> f_aalB ()
tell' :: forall tag_aalx (w_aabH :: Type) f_aaly. SendIns (Tag (Tell w_aabH) tag_aalx) f_aaly => w_aabH -> f_aaly ()
tell :: forall (w_aabH :: Type) f_aalv. SendIns (Tell w_aabH) f_aalv => w_aabH -> f_aalv ()
pass :: (Tell w <: m, WriterH w <<: m, Monad m) => m (w -> w, a) -> m a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Writer.WriterH w)
module Data.Effect.Unlift
data UnliftBase b f (a :: Type)
[WithRunInBase] :: ((forall x. f x -> b x) -> b a) -> UnliftBase b f a
withRunInBase'' :: forall key_aaWv (b_aaV3 :: Type -> Type) (a_aaV4 :: Type) f_aaV2. SendSigBy key_aaWv (UnliftBase b_aaV3) f_aaV2 => ((forall (x_aaV5 :: Type). f_aaV2 x_aaV5 -> b_aaV3 x_aaV5) -> b_aaV3 a_aaV4) -> f_aaV2 a_aaV4
withRunInBase' :: forall tag_aaWt (b_aaV3 :: Type -> Type) (a_aaV4 :: Type) f_aaV2. SendSig (TagH (UnliftBase b_aaV3) tag_aaWt) f_aaV2 => ((forall (x_aaV5 :: Type). f_aaV2 x_aaV5 -> b_aaV3 x_aaV5) -> b_aaV3 a_aaV4) -> f_aaV2 a_aaV4
withRunInBase :: forall (b_aaV3 :: Type -> Type) (a_aaV4 :: Type) f_aaV2. SendSig (UnliftBase b_aaV3) f_aaV2 => ((forall (x_aaV5 :: Type). f_aaV2 x_aaV5 -> b_aaV3 x_aaV5) -> b_aaV3 a_aaV4) -> f_aaV2 a_aaV4
type UnliftIO = UnliftBase IO
pattern WithRunInIO :: ((f ~> IO) -> IO a) -> UnliftIO f a
withRunInIO :: UnliftIO <<: f => ((f ~> IO) -> IO a) -> f a
withRunInIO' :: forall tag f a. (UnliftIO ## tag) <<: f => ((f ~> IO) -> IO a) -> f a
withRunInIO'' :: forall key f a. SendSigBy key UnliftIO f => ((f ~> IO) -> IO a) -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Unlift.UnliftBase b)
module Data.Effect.State
data State s a
[Get] :: State s s
[Put] :: s -> State s ()
type LState s_abbt = LiftIns (State s_abbt)
pattern LPut :: () => a_abcu ~ () => s_abbw -> LiftIns (State s_abbw) f_abct a_abcu
pattern LGet :: () => a_abcr ~ s_abbv => LiftIns (State s_abbv) f_abcq a_abcr
put'' :: forall key_abcn (s_abbw :: Type) f_abco. SendInsBy key_abcn (State s_abbw) f_abco => s_abbw -> f_abco ()
put' :: forall tag_abck (s_abbw :: Type) f_abcl. SendIns (Tag (State s_abbw) tag_abck) f_abcl => s_abbw -> f_abcl ()
put :: forall (s_abbw :: Type) f_abci. SendIns (State s_abbw) f_abci => s_abbw -> f_abci ()
get'' :: forall key_abcg (s_abbv :: Type) f_abch. SendInsBy key_abcg (State s_abbv) f_abch => f_abch s_abbv
get' :: forall tag_abce (s_abbv :: Type) f_abcf. SendIns (Tag (State s_abbv) tag_abce) f_abcf => f_abcf s_abbv
get :: forall (s_abbv :: Type) f_abcd. SendIns (State s_abbv) f_abcd => f_abcd s_abbv
gets :: (State s <: f, Functor f) => (s -> a) -> f a
modify :: (State s <: m, Monad m) => (s -> s) -> m ()
module Data.Effect.ShiftReset
data Shift' (r :: Type) m a
[Shift] :: forall r m a. ((a -> m r) -> m r) -> Shift' r m a
data ShiftKey
type Shift r_abxK = (##>) ShiftKey (Shift' r_abxK)
shift :: forall (r_abxN :: Type) (a_abxP :: Type) m_abxO. SendSigBy ShiftKey (Shift' r_abxN) m_abxO => ((a_abxP -> m_abxO r_abxN) -> m_abxO r_abxN) -> m_abxO a_abxP
shift'' :: forall key_abza (r_abxN :: Type) (a_abxP :: Type) m_abxO. SendSigBy key_abza (Shift' r_abxN) m_abxO => ((a_abxP -> m_abxO r_abxN) -> m_abxO r_abxN) -> m_abxO a_abxP
shift' :: forall tag_abz8 (r_abxN :: Type) (a_abxP :: Type) m_abxO. SendSig (TagH (Shift' r_abxN) tag_abz8) m_abxO => ((a_abxP -> m_abxO r_abxN) -> m_abxO r_abxN) -> m_abxO a_abxP
shift'_ :: forall (r_abxN :: Type) (a_abxP :: Type) m_abxO. SendSig (Shift' r_abxN) m_abxO => ((a_abxP -> m_abxO r_abxN) -> m_abxO r_abxN) -> m_abxO a_abxP
callCC :: forall r m a. (SendSigBy ShiftKey (Shift' r) m, Monad m) => ((a -> m r) -> m a) -> m a
exit :: (SendSigBy ShiftKey (Shift' r) f, Applicative f) => r -> f a
getCC :: (SendSigBy ShiftKey (Shift' r) m, Monad m) => m (m r)
data Shift_ m a
[Shift_] :: (forall (r :: Type). (a -> m r) -> m r) -> Shift_ m a
shift_'' :: forall key_abIi (a_abzp :: Type) m_abzq. SendSigBy key_abIi Shift_ m_abzq => (forall (r_abzr :: Type). (a_abzp -> m_abzq r_abzr) -> m_abzq r_abzr) -> m_abzq a_abzp
shift_' :: forall tag_abIg (a_abzp :: Type) m_abzq. SendSig (TagH Shift_ tag_abIg) m_abzq => (forall (r_abzr :: Type). (a_abzp -> m_abzq r_abzr) -> m_abzq r_abzr) -> m_abzq a_abzp
shift_ :: forall (a_abzp :: Type) m_abzq. SendSig Shift_ m_abzq => (forall (r_abzr :: Type). (a_abzp -> m_abzq r_abzr) -> m_abzq r_abzr) -> m_abzq a_abzp
getCC_ :: (Shift_ <<: m, Monad m) => m (m ())
data Reset m (a :: Type)
[Reset] :: m a -> Reset m a
reset'' :: forall key_abMH (a_abIt :: Type) m_abIs. SendSigBy key_abMH Reset m_abIs => m_abIs a_abIt -> m_abIs a_abIt
reset' :: forall tag_abMF (a_abIt :: Type) m_abIs. SendSig (TagH Reset tag_abMF) m_abIs => m_abIs a_abIt -> m_abIs a_abIt
reset :: forall (a_abIt :: Type) m_abIs. SendSig Reset m_abIs => m_abIs a_abIt -> m_abIs a_abIt
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor Data.Effect.ShiftReset.Reset
-- | An effect capable of providing bracket semantics.
module Data.Effect.Resource
-- | An effect capable of providing bracket semantics.
data Resource f a
-- | Allocate a resource, use it, and clean it up afterwards.
[Bracket] :: f a -> (a -> f ()) -> (a -> f b) -> Resource f b
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
[BracketOnExcept] :: f a -> (a -> f ()) -> (a -> f b) -> Resource f b
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
bracketOnExcept'' :: forall key_acbP (a_X0 :: Type) (b_ac9X :: Type) f_ac9V. SendSigBy key_acbP Resource f_ac9V => f_ac9V a_X0 -> (a_X0 -> f_ac9V ()) -> (a_X0 -> f_ac9V b_ac9X) -> f_ac9V b_ac9X
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
bracketOnExcept' :: forall tag_acbL (a_X0 :: Type) (b_ac9X :: Type) f_ac9V. SendSig (TagH Resource tag_acbL) f_ac9V => f_ac9V a_X0 -> (a_X0 -> f_ac9V ()) -> (a_X0 -> f_ac9V b_ac9X) -> f_ac9V b_ac9X
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
bracketOnExcept :: forall (a_X0 :: Type) (b_ac9X :: Type) f_ac9V. SendSig Resource f_ac9V => f_ac9V a_X0 -> (a_X0 -> f_ac9V ()) -> (a_X0 -> f_ac9V b_ac9X) -> f_ac9V b_ac9X
-- | Allocate a resource, use it, and clean it up afterwards.
bracket'' :: forall key_acbE (a_X0 :: Type) (b_ac9U :: Type) f_ac9S. SendSigBy key_acbE Resource f_ac9S => f_ac9S a_X0 -> (a_X0 -> f_ac9S ()) -> (a_X0 -> f_ac9S b_ac9U) -> f_ac9S b_ac9U
-- | Allocate a resource, use it, and clean it up afterwards.
bracket' :: forall tag_acbA (a_X0 :: Type) (b_ac9U :: Type) f_ac9S. SendSig (TagH Resource tag_acbA) f_ac9S => f_ac9S a_X0 -> (a_X0 -> f_ac9S ()) -> (a_X0 -> f_ac9S b_ac9U) -> f_ac9S b_ac9U
-- | Allocate a resource, use it, and clean it up afterwards.
bracket :: forall (a_X0 :: Type) (b_ac9U :: Type) f_ac9S. SendSig Resource f_ac9S => f_ac9S a_X0 -> (a_X0 -> f_ac9S ()) -> (a_X0 -> f_ac9S b_ac9U) -> f_ac9S b_ac9U
bracket_ :: (Resource <<: f, Functor f) => f a -> f b -> f c -> f c
bracketOnExcept_ :: (Resource <<: f, Functor f) => f a -> f b -> f c -> f c
finally :: (Resource <<: f, Applicative f) => f a -> f () -> f a
finally_ :: (Resource <<: f, Applicative f) => f a -> f b -> f a
onException :: (Resource <<: f, Applicative f) => f a -> f () -> f a
onException_ :: (Resource <<: f, Applicative f) => f a -> f b -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor Data.Effect.Resource.Resource
module Data.Effect.Reader
data Ask r (a :: Type)
[Ask] :: Ask r r
data Local r f (a :: Type)
[Local] :: (r -> r) -> f a -> Local r f a
type LAsk r_acMO = LiftIns (Ask r_acMO)
local'' :: forall key_acOf (r_acML :: Type) (a_acMN :: Type) f_acMM. SendSigBy key_acOf (Local r_acML) f_acMM => (r_acML -> r_acML) -> f_acMM a_acMN -> f_acMM a_acMN
local' :: forall tag_acOc (r_acML :: Type) (a_acMN :: Type) f_acMM. SendSig (TagH (Local r_acML) tag_acOc) f_acMM => (r_acML -> r_acML) -> f_acMM a_acMN -> f_acMM a_acMN
local :: forall (r_acML :: Type) (a_acMN :: Type) f_acMM. SendSig (Local r_acML) f_acMM => (r_acML -> r_acML) -> f_acMM a_acMN -> f_acMM a_acMN
pattern LAsk :: () => a_acO6 ~ r_acMQ => LiftIns (Ask r_acMQ) f_acO5 a_acO6
ask'' :: forall key_acO3 (r_acMQ :: Type) f_acO4. SendInsBy key_acO3 (Ask r_acMQ) f_acO4 => f_acO4 r_acMQ
ask' :: forall tag_acO1 (r_acMQ :: Type) f_acO2. SendIns (Tag (Ask r_acMQ) tag_acO1) f_acO2 => f_acO2 r_acMQ
ask :: forall (r_acMQ :: Type) f_acO0. SendIns (Ask r_acMQ) f_acO0 => f_acO0 r_acMQ
asks :: (Ask r <: f, Functor f) => (r -> a) -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Reader.Local r)
module Data.Effect.Provider.Implicit
data ImplicitProvider' c i e (f :: Type -> Type) (a :: Type)
[WithImplicit] :: i -> (forall g. (c g, e g) => (forall x. f x -> g x) -> g a) -> ImplicitProvider' c i e f a
data ImplicitProviderKey
type ImplicitProvider c_ad4V i_ad4W e_ad4X = (##>) ImplicitProviderKey (ImplicitProvider' c_ad4V i_ad4W e_ad4X)
withImplicit :: forall (i_ad50 :: Type) (c_ad51 :: (Type -> Type) -> Constraint) (e_ad52 :: (Type -> Type) -> Constraint) (a_ad54 :: Type) f_ad53. SendSigBy ImplicitProviderKey (ImplicitProvider' c_ad51 i_ad50 e_ad52) f_ad53 => i_ad50 -> (forall (g_ad55 :: Type -> Type). (c_ad51 g_ad55, e_ad52 g_ad55) => (forall (x_ad56 :: Type). f_ad53 x_ad56 -> g_ad55 x_ad56) -> g_ad55 a_ad54) -> f_ad53 a_ad54
withImplicit'' :: forall key_ad78 (i_ad50 :: Type) (c_ad51 :: (Type -> Type) -> Constraint) (e_ad52 :: (Type -> Type) -> Constraint) (a_ad54 :: Type) f_ad53. SendSigBy key_ad78 (ImplicitProvider' c_ad51 i_ad50 e_ad52) f_ad53 => i_ad50 -> (forall (g_ad55 :: Type -> Type). (c_ad51 g_ad55, e_ad52 g_ad55) => (forall (x_ad56 :: Type). f_ad53 x_ad56 -> g_ad55 x_ad56) -> g_ad55 a_ad54) -> f_ad53 a_ad54
withImplicit' :: forall tag_ad75 (i_ad50 :: Type) (c_ad51 :: (Type -> Type) -> Constraint) (e_ad52 :: (Type -> Type) -> Constraint) (a_ad54 :: Type) f_ad53. SendSig (TagH (ImplicitProvider' c_ad51 i_ad50 e_ad52) tag_ad75) f_ad53 => i_ad50 -> (forall (g_ad55 :: Type -> Type). (c_ad51 g_ad55, e_ad52 g_ad55) => (forall (x_ad56 :: Type). f_ad53 x_ad56 -> g_ad55 x_ad56) -> g_ad55 a_ad54) -> f_ad53 a_ad54
withImplicit'_ :: forall (i_ad50 :: Type) (c_ad51 :: (Type -> Type) -> Constraint) (e_ad52 :: (Type -> Type) -> Constraint) (a_ad54 :: Type) f_ad53. SendSig (ImplicitProvider' c_ad51 i_ad50 e_ad52) f_ad53 => i_ad50 -> (forall (g_ad55 :: Type -> Type). (c_ad51 g_ad55, e_ad52 g_ad55) => (forall (x_ad56 :: Type). f_ad53 x_ad56 -> g_ad55 x_ad56) -> g_ad55 a_ad54) -> f_ad53 a_ad54
type MonadImplicitProvider i e = ImplicitProvider Monad i e
type ApplicativeImplicitProvider i e = ImplicitProvider Applicative i e
(.!) :: forall c e i f a. SendSigBy ImplicitProviderKey (ImplicitProvider' c i e) f => i -> (forall g. (c g, e g) => g a) -> f a
(..!) :: forall c e i f a. SendSigBy ImplicitProviderKey (ImplicitProvider' c i e) f => i -> (forall g. (c g, e g) => (f ~> g) -> g a) -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Provider.Implicit.ImplicitProvider' c i e)
-- | This module provides the Provider effect, comes from
-- Effectful.Provider in the effectful package.
module Data.Effect.Provider
data Provider' c i ctx e (f :: Type -> Type) (a :: Type)
[Provide] :: i -> (forall g. (c g, e g) => (forall x. f x -> g x) -> g a) -> Provider' c i ctx e f (ctx a)
data ProviderKey
type Provider c_adpK i_adpL ctx_adpM e_adpN = (##>) ProviderKey (Provider' c_adpK i_adpL ctx_adpM e_adpN)
provide :: forall (i_adpQ :: Type) (c_adpR :: (Type -> Type) -> Constraint) (e_adpS :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adpV :: Type -> Type) f_adpT. SendSigBy ProviderKey (Provider' c_adpR i_adpQ ctx_adpV e_adpS) f_adpT => i_adpQ -> (forall (g_adpW :: Type -> Type). (c_adpR g_adpW, e_adpS g_adpW) => (forall (x_adpX :: Type). f_adpT x_adpX -> g_adpW x_adpX) -> g_adpW a_X0) -> f_adpT (ctx_adpV a_X0)
provide'' :: forall key_ads8 (i_adpQ :: Type) (c_adpR :: (Type -> Type) -> Constraint) (e_adpS :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adpV :: Type -> Type) f_adpT. SendSigBy key_ads8 (Provider' c_adpR i_adpQ ctx_adpV e_adpS) f_adpT => i_adpQ -> (forall (g_adpW :: Type -> Type). (c_adpR g_adpW, e_adpS g_adpW) => (forall (x_adpX :: Type). f_adpT x_adpX -> g_adpW x_adpX) -> g_adpW a_X0) -> f_adpT (ctx_adpV a_X0)
provide' :: forall tag_ads5 (i_adpQ :: Type) (c_adpR :: (Type -> Type) -> Constraint) (e_adpS :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adpV :: Type -> Type) f_adpT. SendSig (TagH (Provider' c_adpR i_adpQ ctx_adpV e_adpS) tag_ads5) f_adpT => i_adpQ -> (forall (g_adpW :: Type -> Type). (c_adpR g_adpW, e_adpS g_adpW) => (forall (x_adpX :: Type). f_adpT x_adpX -> g_adpW x_adpX) -> g_adpW a_X0) -> f_adpT (ctx_adpV a_X0)
provide'_ :: forall (i_adpQ :: Type) (c_adpR :: (Type -> Type) -> Constraint) (e_adpS :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adpV :: Type -> Type) f_adpT. SendSig (Provider' c_adpR i_adpQ ctx_adpV e_adpS) f_adpT => i_adpQ -> (forall (g_adpW :: Type -> Type). (c_adpR g_adpW, e_adpS g_adpW) => (forall (x_adpX :: Type). f_adpT x_adpX -> g_adpW x_adpX) -> g_adpW a_X0) -> f_adpT (ctx_adpV a_X0)
type MonadProvider' = Provider' Monad
type ApplicativeProvider' = Provider' Applicative
type MonadProvider i ctx e = Provider Monad i ctx e
type ApplicativeProvider i ctx e = Provider Applicative i ctx e
mprovide :: forall e i ctx f a. SendSigBy ProviderKey (MonadProvider' i ctx e) f => i -> (forall g. (Monad g, e g) => (f ~> g) -> g a) -> f (ctx a)
aprovide :: forall e i ctx f a. SendSigBy ProviderKey (ApplicativeProvider' i ctx e) f => i -> (forall h. (Applicative h, e h) => (f ~> h) -> h a) -> f (ctx a)
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Provider.Provider' c i ctx e)
-- | This module provides the Output effect, comes from
-- Polysemy.Output in the polysemy package.
module Data.Effect.Output
data Output o a
[Output] :: o -> Output o ()
type LOutput o_adLF = LiftIns (Output o_adLF)
pattern LOutput :: () => a_adMm ~ () => o_adLH -> LiftIns (Output o_adLH) f_adMl a_adMm
output'' :: forall key_adMh (o_adLH :: Type) f_adMi. SendInsBy key_adMh (Output o_adLH) f_adMi => o_adLH -> f_adMi ()
output' :: forall tag_adMe (o_adLH :: Type) f_adMf. SendIns (Tag (Output o_adLH) tag_adMe) f_adMf => o_adLH -> f_adMf ()
output :: forall (o_adLH :: Type) f_adMc. SendIns (Output o_adLH) f_adMc => o_adLH -> f_adMc ()
module Data.Effect.NonDet
data Empty (a :: Type)
[Empty] :: Empty a
type LEmpty = LiftIns Empty
pattern LEmpty :: () => a_adWq ~ a_adVS => LiftIns Empty f_adWp a_adWq
empty'' :: forall key_adWn (a_adVS :: Type) f_adWo. SendInsBy key_adWn Empty f_adWo => f_adWo a_adVS
empty' :: forall tag_adWl (a_adVS :: Type) f_adWm. SendIns (Tag Empty tag_adWl) f_adWm => f_adWm a_adVS
empty :: forall (a_adVS :: Type) f_adWk. SendIns Empty f_adWk => f_adWk a_adVS
data Choose (a :: Type)
[Choose] :: Choose Bool
type LChoose = LiftIns Choose
pattern LChoose :: () => a_adZR ~ Bool => LiftIns Choose f_adZQ a_adZR
choose'' :: forall key_adZO f_adZP. SendInsBy key_adZO Choose f_adZP => f_adZP Bool
choose' :: forall tag_adZM f_adZN. SendIns (Tag Choose tag_adZM) f_adZN => f_adZN Bool
choose :: forall f_adZL. SendIns Choose f_adZL => f_adZL Bool
data ChooseH f (a :: Type)
[ChooseH] :: f a -> f a -> ChooseH f a
chooseH'' :: forall key_ae3j (a_ae02 :: Type) f_ae01. SendSigBy key_ae3j ChooseH f_ae01 => f_ae01 a_ae02 -> f_ae01 a_ae02 -> f_ae01 a_ae02
chooseH' :: forall tag_ae3g (a_ae02 :: Type) f_ae01. SendSig (TagH ChooseH tag_ae3g) f_ae01 => f_ae01 a_ae02 -> f_ae01 a_ae02 -> f_ae01 a_ae02
chooseH :: forall (a_ae02 :: Type) f_ae01. SendSig ChooseH f_ae01 => f_ae01 a_ae02 -> f_ae01 a_ae02 -> f_ae01 a_ae02
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor Data.Effect.NonDet.ChooseH
-- | This module provides the Input effect, comes from
-- Polysemy.Input in the polysemy package.
module Data.Effect.Input
data Input i (a :: Type)
[Input] :: Input i i
type LInput i_aeif = LiftIns (Input i_aeif)
pattern LInput :: () => a_aeiQ ~ i_aeih => LiftIns (Input i_aeih) f_aeiP a_aeiQ
input'' :: forall key_aeiN (i_aeih :: Type) f_aeiO. SendInsBy key_aeiN (Input i_aeih) f_aeiO => f_aeiO i_aeih
input' :: forall tag_aeiL (i_aeih :: Type) f_aeiM. SendIns (Tag (Input i_aeih) tag_aeiL) f_aeiM => f_aeiM i_aeih
input :: forall (i_aeih :: Type) f_aeiK. SendIns (Input i_aeih) f_aeiK => f_aeiK i_aeih
inputs :: (Input i <: f, Functor f) => (i -> a) -> f a
module Data.Effect.Fresh
data Fresh i (a :: Type)
[Fresh] :: Fresh i i
type LFresh i_aert = LiftIns (Fresh i_aert)
pattern LFresh :: () => a_aes4 ~ i_aerv => LiftIns (Fresh i_aerv) f_aes3 a_aes4
fresh'' :: forall key_aes1 (i_aerv :: Type) f_aes2. SendInsBy key_aes1 (Fresh i_aerv) f_aes2 => f_aes2 i_aerv
fresh' :: forall tag_aerZ (i_aerv :: Type) f_aes0. SendIns (Tag (Fresh i_aerv) tag_aerZ) f_aes0 => f_aes0 i_aerv
fresh :: forall (i_aerv :: Type) f_aerY. SendIns (Fresh i_aerv) f_aerY => f_aerY i_aerv
module Data.Effect.Fix
data Fix f a
[Mfix] :: (a -> f a) -> Fix f a
mfix'' :: forall key_aezV (a_aeza :: Type) f_aezb. SendSigBy key_aezV Fix f_aezb => (a_aeza -> f_aezb a_aeza) -> f_aezb a_aeza
mfix' :: forall tag_aezT (a_aeza :: Type) f_aezb. SendSig (TagH Fix tag_aezT) f_aezb => (a_aeza -> f_aezb a_aeza) -> f_aezb a_aeza
mfix :: forall (a_aeza :: Type) f_aezb. SendSig Fix f_aezb => (a_aeza -> f_aezb a_aeza) -> f_aezb a_aeza
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor Data.Effect.Fix.Fix
module Data.Effect.Fail
data Fail (a :: Type)
[Fail] :: String -> Fail a
type LFail = LiftIns Fail
pattern LFail :: () => a_aeJ3 ~ a_aeIp => String -> LiftIns Fail f_aeJ2 a_aeJ3
fail'' :: forall key_aeIY (a_aeIp :: Type) f_aeIZ. SendInsBy key_aeIY Fail f_aeIZ => String -> f_aeIZ a_aeIp
fail' :: forall tag_aeIV (a_aeIp :: Type) f_aeIW. SendIns (Tag Fail tag_aeIV) f_aeIW => String -> f_aeIW a_aeIp
fail :: forall (a_aeIp :: Type) f_aeIT. SendIns Fail f_aeIT => String -> f_aeIT a_aeIp
module Data.Effect.Except
data Throw e (a :: Type)
[Throw] :: e -> Throw e a
data Catch e f (a :: Type)
[Catch] :: f a -> (e -> f a) -> Catch e f a
type LThrow e_aeRy = LiftIns (Throw e_aeRy)
catch'' :: forall key_aeTe (a_aeRw :: Type) (e_aeRx :: Type) f_aeRv. SendSigBy key_aeTe (Catch e_aeRx) f_aeRv => f_aeRv a_aeRw -> (e_aeRx -> f_aeRv a_aeRw) -> f_aeRv a_aeRw
catch' :: forall tag_aeTb (a_aeRw :: Type) (e_aeRx :: Type) f_aeRv. SendSig (TagH (Catch e_aeRx) tag_aeTb) f_aeRv => f_aeRv a_aeRw -> (e_aeRx -> f_aeRv a_aeRw) -> f_aeRv a_aeRw
catch :: forall (a_aeRw :: Type) (e_aeRx :: Type) f_aeRv. SendSig (Catch e_aeRx) f_aeRv => f_aeRv a_aeRw -> (e_aeRx -> f_aeRv a_aeRw) -> f_aeRv a_aeRw
pattern LThrow :: () => a_aeT5 ~ a_aeRB => e_aeRA -> LiftIns (Throw e_aeRA) f_aeT4 a_aeT5
throw'' :: forall key_aeT0 (e_aeRA :: Type) (a_aeRB :: Type) f_aeT1. SendInsBy key_aeT0 (Throw e_aeRA) f_aeT1 => e_aeRA -> f_aeT1 a_aeRB
throw' :: forall tag_aeSX (e_aeRA :: Type) (a_aeRB :: Type) f_aeSY. SendIns (Tag (Throw e_aeRA) tag_aeSX) f_aeSY => e_aeRA -> f_aeSY a_aeRB
throw :: forall (e_aeRA :: Type) (a_aeRB :: Type) f_aeSV. SendIns (Throw e_aeRA) f_aeSV => e_aeRA -> f_aeSV a_aeRB
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Except.Catch e)
-- | This module provides the KVStore effect, comes from
-- Polysemy.KVStore in the polysemy-kvstore
-- package.
module Data.Effect.KVStore
data KVStore k v a
[LookupKV] :: k -> KVStore k v (Maybe v)
[UpdateKV] :: k -> Maybe v -> KVStore k v ()
type LKVStore k_afbr v_afbs = LiftIns (KVStore k_afbr v_afbs)
pattern LUpdateKV :: () => a_afdi ~ () => k_afbS -> Maybe v_afbT -> LiftIns (KVStore k_afbS v_afbT) f_afdh a_afdi
pattern LLookupKV :: () => a_afde ~ Maybe v_afbv => k_afbu -> LiftIns (KVStore k_afbu v_afbv) f_afdd a_afde
updateKV'' :: forall key_afd8 (k_afbS :: Type) (v_afbT :: Type) f_afd9. SendInsBy key_afd8 (KVStore k_afbS v_afbT) f_afd9 => k_afbS -> Maybe v_afbT -> f_afd9 ()
updateKV' :: forall tag_afd4 (k_afbS :: Type) (v_afbT :: Type) f_afd5. SendIns (Tag (KVStore k_afbS v_afbT) tag_afd4) f_afd5 => k_afbS -> Maybe v_afbT -> f_afd5 ()
updateKV :: forall (k_afbS :: Type) (v_afbT :: Type) f_afd1. SendIns (KVStore k_afbS v_afbT) f_afd1 => k_afbS -> Maybe v_afbT -> f_afd1 ()
lookupKV'' :: forall key_afcY (k_afbu :: Type) (v_afbv :: Type) f_afcZ. SendInsBy key_afcY (KVStore k_afbu v_afbv) f_afcZ => k_afbu -> f_afcZ (Maybe v_afbv)
lookupKV' :: forall tag_afcV (k_afbu :: Type) (v_afbv :: Type) f_afcW. SendIns (Tag (KVStore k_afbu v_afbv) tag_afcV) f_afcW => k_afbu -> f_afcW (Maybe v_afbv)
lookupKV :: forall (k_afbu :: Type) (v_afbv :: Type) f_afcT. SendIns (KVStore k_afbu v_afbv) f_afcT => k_afbu -> f_afcT (Maybe v_afbv)
lookupOrThrowKV :: (KVStore k v <: m, Throw e <: m, Monad m) => (k -> e) -> k -> m v
existsKV :: forall v k f. (KVStore k v <: f, Functor f) => k -> f Bool
writeKV :: KVStore k v <: f => k -> v -> f ()
deleteKV :: forall v k f. KVStore k v <: f => k -> f ()
modifyKV :: (KVStore k v <: m, Monad m) => v -> (v -> v) -> k -> m ()
-- | This module provides the Coroutine effect, comes from
-- Control.Monad.Freer.Coroutine in the
-- freer-simple package (The continuation part (b ->
-- c) has been removed. If necessary, please manually compose the
-- Coyoneda) .
module Data.Effect.Coroutine
data Yield a b (c :: Type)
[Yield] :: a -> Yield a b b
type LYield a_afLm b_afLn = LiftIns (Yield a_afLm b_afLn)
pattern LYield :: () => a_afMd ~ b_afLq => a_afLp -> LiftIns (Yield a_afLp b_afLq) f_afMc a_afMd
yield'' :: forall key_afM8 (a_afLp :: Type) (b_afLq :: Type) f_afM9. SendInsBy key_afM8 (Yield a_afLp b_afLq) f_afM9 => a_afLp -> f_afM9 b_afLq
yield' :: forall tag_afM5 (a_afLp :: Type) (b_afLq :: Type) f_afM6. SendIns (Tag (Yield a_afLp b_afLq) tag_afM5) f_afM6 => a_afLp -> f_afM6 b_afLq
yield :: forall (a_afLp :: Type) (b_afLq :: Type) f_afM3. SendIns (Yield a_afLp b_afLq) f_afM3 => a_afLp -> f_afM3 b_afLq
yield_ :: Yield a () <: f => a -> f ()
data Status f a b r
Done :: r -> Status f a b r
Coroutine :: a -> (b -> f (Status f a b r)) -> Status f a b r
continueStatus :: Monad m => (x -> m (Status m a b r)) -> Status m a b x -> m (Status m a b r)
loopStatus :: Monad m => (a -> m b) -> Status m a b r -> m r
instance GHC.Base.Functor f => GHC.Base.Functor (Data.Effect.Coroutine.Status f a b)
module Data.Effect.Cont
data CallCC m a
[CallCC] :: (forall r. (a -> m r) -> m a) -> CallCC m a
callCC'' :: forall key_agkR (a_agjr :: Type) m_agjs. SendSigBy key_agkR CallCC m_agjs => (forall (r_agjt :: Type). (a_agjr -> m_agjs r_agjt) -> m_agjs a_agjr) -> m_agjs a_agjr
callCC' :: forall tag_agkP (a_agjr :: Type) m_agjs. SendSig (TagH CallCC tag_agkP) m_agjs => (forall (r_agjt :: Type). (a_agjr -> m_agjs r_agjt) -> m_agjs a_agjr) -> m_agjs a_agjr
callCC :: forall (a_agjr :: Type) m_agjs. SendSig CallCC m_agjs => (forall (r_agjt :: Type). (a_agjr -> m_agjs r_agjt) -> m_agjs a_agjr) -> m_agjs a_agjr
module Data.Effect.Concurrent.Thread
data Thread' tid f (a :: Type)
[ForkThread] :: f () -> Thread' tid f tid
data ThreadKey
type Thread tid_agrb = (##>) ThreadKey (Thread' tid_agrb)
forkThread :: forall (tid_agrf :: Type) f_agre. SendSigBy ThreadKey (Thread' tid_agrf) f_agre => f_agre () -> f_agre tid_agrf
forkThread'' :: forall key_agrY (tid_agrf :: Type) f_agre. SendSigBy key_agrY (Thread' tid_agrf) f_agre => f_agre () -> f_agre tid_agrf
forkThread' :: forall tag_agrW (tid_agrf :: Type) f_agre. SendSig (TagH (Thread' tid_agrf) tag_agrW) f_agre => f_agre () -> f_agre tid_agrf
forkThread'_ :: forall (tid_agrf :: Type) f_agre. SendSig (Thread' tid_agrf) f_agre => f_agre () -> f_agre tid_agrf
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Concurrent.Thread.Thread' tid)
module Data.Effect.Chronicle
data ChronicleF c a
[Dictate] :: c -> ChronicleF c ()
[Confess] :: c -> ChronicleF c a
data ChronicleH c f a
[Memento] :: f a -> ChronicleH c f (Either c a)
[Absolve] :: a -> f a -> ChronicleH c f a
[Condemn] :: f a -> ChronicleH c f a
type LChronicleF c_agGP = LiftIns (ChronicleF c_agGP)
condemn'' :: forall key_agJW (a_agGN :: Type) (c_agGO :: Type) f_agGM. SendSigBy key_agJW (ChronicleH c_agGO) f_agGM => f_agGM a_agGN -> f_agGM a_agGN
condemn' :: forall tag_agJU (a_agGN :: Type) (c_agGO :: Type) f_agGM. SendSig (TagH (ChronicleH c_agGO) tag_agJU) f_agGM => f_agGM a_agGN -> f_agGM a_agGN
condemn :: forall (a_agGN :: Type) (c_agGO :: Type) f_agGM. SendSig (ChronicleH c_agGO) f_agGM => f_agGM a_agGN -> f_agGM a_agGN
absolve'' :: forall key_agJQ (a_agGJ :: Type) (c_agGL :: Type) f_agGK. SendSigBy key_agJQ (ChronicleH c_agGL) f_agGK => a_agGJ -> f_agGK a_agGJ -> f_agGK a_agGJ
absolve' :: forall tag_agJN (a_agGJ :: Type) (c_agGL :: Type) f_agGK. SendSig (TagH (ChronicleH c_agGL) tag_agJN) f_agGK => a_agGJ -> f_agGK a_agGJ -> f_agGK a_agGJ
absolve :: forall (a_agGJ :: Type) (c_agGL :: Type) f_agGK. SendSig (ChronicleH c_agGL) f_agGK => a_agGJ -> f_agGK a_agGJ -> f_agGK a_agGJ
memento'' :: forall key_agJJ (a_X0 :: Type) (c_agFS :: Type) f_agFQ. SendSigBy key_agJJ (ChronicleH c_agFS) f_agFQ => f_agFQ a_X0 -> f_agFQ (Either c_agFS a_X0)
memento' :: forall tag_agJH (a_X0 :: Type) (c_agFS :: Type) f_agFQ. SendSig (TagH (ChronicleH c_agFS) tag_agJH) f_agFQ => f_agFQ a_X0 -> f_agFQ (Either c_agFS a_X0)
memento :: forall (a_X0 :: Type) (c_agFS :: Type) f_agFQ. SendSig (ChronicleH c_agFS) f_agFQ => f_agFQ a_X0 -> f_agFQ (Either c_agFS a_X0)
pattern LConfess :: () => a_agJx ~ a_agGT => c_agGS -> LiftIns (ChronicleF c_agGS) f_agJw a_agJx
pattern LDictate :: () => a_agJu ~ () => c_agGR -> LiftIns (ChronicleF c_agGR) f_agJt a_agJu
confess'' :: forall key_agJp (c_agGS :: Type) (a_agGT :: Type) f_agJq. SendInsBy key_agJp (ChronicleF c_agGS) f_agJq => c_agGS -> f_agJq a_agGT
confess' :: forall tag_agJm (c_agGS :: Type) (a_agGT :: Type) f_agJn. SendIns (Tag (ChronicleF c_agGS) tag_agJm) f_agJn => c_agGS -> f_agJn a_agGT
confess :: forall (c_agGS :: Type) (a_agGT :: Type) f_agJk. SendIns (ChronicleF c_agGS) f_agJk => c_agGS -> f_agJk a_agGT
dictate'' :: forall key_agJh (c_agGR :: Type) f_agJi. SendInsBy key_agJh (ChronicleF c_agGR) f_agJi => c_agGR -> f_agJi ()
dictate' :: forall tag_agJe (c_agGR :: Type) f_agJf. SendIns (Tag (ChronicleF c_agGR) tag_agJe) f_agJf => c_agGR -> f_agJf ()
dictate :: forall (c_agGR :: Type) f_agJc. SendIns (ChronicleF c_agGR) f_agJc => c_agGR -> f_agJc ()
chronicle :: (ChronicleF c <: f, Applicative f) => These c a -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Chronicle.ChronicleH c)
module Data.Effect.Accum
data Accum w a
[Add] :: w -> Accum f ()
[Look] :: Accum w w
type LAccum w_ahsi = LiftIns (Accum w_ahsi)
pattern LLook :: () => a_ahtp ~ w_ahsm => LiftIns (Accum w_ahsm) f_ahto a_ahtp
pattern LAdd :: () => a_ahtn ~ () => w_X0 -> LiftIns (Accum f_ahsl) f_ahtm a_ahtn
look'' :: forall key_ahtj (w_ahsm :: Type) f_ahtk. SendInsBy key_ahtj (Accum w_ahsm) f_ahtk => f_ahtk w_ahsm
look' :: forall tag_ahth (w_ahsm :: Type) f_ahti. SendIns (Tag (Accum w_ahsm) tag_ahth) f_ahti => f_ahti w_ahsm
look :: forall (w_ahsm :: Type) f_ahtg. SendIns (Accum w_ahsm) f_ahtg => f_ahtg w_ahsm
add'' :: forall key_ahtd (w_X0 :: Type) (f_ahsl :: Type) f_ahte. SendInsBy key_ahtd (Accum f_ahsl) f_ahte => w_X0 -> f_ahte ()
add' :: forall tag_ahta (w_X0 :: Type) (f_ahsl :: Type) f_ahtb. SendIns (Tag (Accum f_ahsl) tag_ahta) f_ahtb => w_X0 -> f_ahtb ()
add :: forall (w_X0 :: Type) (f_ahsl :: Type) f_aht8. SendIns (Accum f_ahsl) f_aht8 => w_X0 -> f_aht8 ()