-- 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 ()