-- 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.1.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_aajh = LiftIns (Tell w_aajh) censor'' :: forall key_aatx (w_aaje :: Type) (a_aajg :: Type) f_aajf. SendSigBy key_aatx (WriterH w_aaje) f_aajf => (w_aaje -> w_aaje) -> f_aajf a_aajg -> f_aajf a_aajg censor' :: forall tag_aatu (w_aaje :: Type) (a_aajg :: Type) f_aajf. SendSig (TagH (WriterH w_aaje) tag_aatu) f_aajf => (w_aaje -> w_aaje) -> f_aajf a_aajg -> f_aajf a_aajg censor :: forall (w_aaje :: Type) (a_aajg :: Type) f_aajf. SendSig (WriterH w_aaje) f_aajf => (w_aaje -> w_aaje) -> f_aajf a_aajg -> f_aajf a_aajg listen'' :: forall key_aatq (a_X0 :: Type) (w_aajd :: Type) f_aajb. SendSigBy key_aatq (WriterH w_aajd) f_aajb => f_aajb a_X0 -> f_aajb (w_aajd, a_X0) listen' :: forall tag_aato (a_X0 :: Type) (w_aajd :: Type) f_aajb. SendSig (TagH (WriterH w_aajd) tag_aato) f_aajb => f_aajb a_X0 -> f_aajb (w_aajd, a_X0) listen :: forall (a_X0 :: Type) (w_aajd :: Type) f_aajb. SendSig (WriterH w_aajd) f_aajb => f_aajb a_X0 -> f_aajb (w_aajd, a_X0) pattern LTell :: () => (a_aath ~ (), ()) => w_aajj -> LiftIns (Tell w_aajj) f_aatg a_aath tell'' :: forall key_aatc (w_aajj :: Type) f_aatd. SendInsBy key_aatc (Tell w_aajj) f_aatd => w_aajj -> f_aatd () tell' :: forall tag_aat9 (w_aajj :: Type) f_aata. SendIns (Tag (Tell w_aajj) tag_aat9) f_aata => w_aajj -> f_aata () tell :: forall (w_aajj :: Type) f_aat7. SendIns (Tell w_aajj) f_aat7 => w_aajj -> f_aat7 () 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_ab4e (b_ab2M :: Type -> Type) (a_ab2N :: Type) f_ab2L. SendSigBy key_ab4e (UnliftBase b_ab2M) f_ab2L => ((forall (x_ab2O :: Type). f_ab2L x_ab2O -> b_ab2M x_ab2O) -> b_ab2M a_ab2N) -> f_ab2L a_ab2N withRunInBase' :: forall tag_ab4c (b_ab2M :: Type -> Type) (a_ab2N :: Type) f_ab2L. SendSig (TagH (UnliftBase b_ab2M) tag_ab4c) f_ab2L => ((forall (x_ab2O :: Type). f_ab2L x_ab2O -> b_ab2M x_ab2O) -> b_ab2M a_ab2N) -> f_ab2L a_ab2N withRunInBase :: forall (b_ab2M :: Type -> Type) (a_ab2N :: Type) f_ab2L. SendSig (UnliftBase b_ab2M) f_ab2L => ((forall (x_ab2O :: Type). f_ab2L x_ab2O -> b_ab2M x_ab2O) -> b_ab2M a_ab2N) -> f_ab2L a_ab2N 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_abjc = LiftIns (State s_abjc) pattern LPut :: () => (a_abkd ~ (), ()) => s_abjf -> LiftIns (State s_abjf) f_abkc a_abkd pattern LGet :: () => (a_abka ~ s_abje, ()) => LiftIns (State s_abje) f_abk9 a_abka put'' :: forall key_abk6 (s_abjf :: Type) f_abk7. SendInsBy key_abk6 (State s_abjf) f_abk7 => s_abjf -> f_abk7 () put' :: forall tag_abk3 (s_abjf :: Type) f_abk4. SendIns (Tag (State s_abjf) tag_abk3) f_abk4 => s_abjf -> f_abk4 () put :: forall (s_abjf :: Type) f_abk1. SendIns (State s_abjf) f_abk1 => s_abjf -> f_abk1 () get'' :: forall key_abjZ (s_abje :: Type) f_abk0. SendInsBy key_abjZ (State s_abje) f_abk0 => f_abk0 s_abje get' :: forall tag_abjX (s_abje :: Type) f_abjY. SendIns (Tag (State s_abje) tag_abjX) f_abjY => f_abjY s_abje get :: forall (s_abje :: Type) f_abjW. SendIns (State s_abje) f_abjW => f_abjW s_abje 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_abFH = (##>) ShiftKey (Shift' r_abFH) shift :: forall (r_abFK :: Type) (a_abFM :: Type) m_abFL. SendSigBy ShiftKey (Shift' r_abFK) m_abFL => ((a_abFM -> m_abFL r_abFK) -> m_abFL r_abFK) -> m_abFL a_abFM shift'' :: forall key_abH7 (r_abFK :: Type) (a_abFM :: Type) m_abFL. SendSigBy key_abH7 (Shift' r_abFK) m_abFL => ((a_abFM -> m_abFL r_abFK) -> m_abFL r_abFK) -> m_abFL a_abFM shift' :: forall tag_abH5 (r_abFK :: Type) (a_abFM :: Type) m_abFL. SendSig (TagH (Shift' r_abFK) tag_abH5) m_abFL => ((a_abFM -> m_abFL r_abFK) -> m_abFL r_abFK) -> m_abFL a_abFM shift'_ :: forall (r_abFK :: Type) (a_abFM :: Type) m_abFL. SendSig (Shift' r_abFK) m_abFL => ((a_abFM -> m_abFL r_abFK) -> m_abFL r_abFK) -> m_abFL a_abFM 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_abQf (a_abHm :: Type) m_abHn. SendSigBy key_abQf Shift_ m_abHn => (forall (r_abHo :: Type). (a_abHm -> m_abHn r_abHo) -> m_abHn r_abHo) -> m_abHn a_abHm shift_' :: forall tag_abQd (a_abHm :: Type) m_abHn. SendSig (TagH Shift_ tag_abQd) m_abHn => (forall (r_abHo :: Type). (a_abHm -> m_abHn r_abHo) -> m_abHn r_abHo) -> m_abHn a_abHm shift_ :: forall (a_abHm :: Type) m_abHn. SendSig Shift_ m_abHn => (forall (r_abHo :: Type). (a_abHm -> m_abHn r_abHo) -> m_abHn r_abHo) -> m_abHn a_abHm getCC_ :: (Shift_ <<: m, Monad m) => m (m ()) data Reset m (a :: Type) [Reset] :: m a -> Reset m a reset'' :: forall key_abUE (a_abQq :: Type) m_abQp. SendSigBy key_abUE Reset m_abQp => m_abQp a_abQq -> m_abQp a_abQq reset' :: forall tag_abUC (a_abQq :: Type) m_abQp. SendSig (TagH Reset tag_abUC) m_abQp => m_abQp a_abQq -> m_abQp a_abQq reset :: forall (a_abQq :: Type) m_abQp. SendSig Reset m_abQp => m_abQp a_abQq -> m_abQp a_abQq 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_acjM (a_X0 :: Type) (b_achU :: Type) f_achS. SendSigBy key_acjM Resource f_achS => f_achS a_X0 -> (a_X0 -> f_achS ()) -> (a_X0 -> f_achS b_achU) -> f_achS b_achU -- | Allocate a resource, use it, and clean it up afterwards if an error -- occurred. bracketOnExcept' :: forall tag_acjI (a_X0 :: Type) (b_achU :: Type) f_achS. SendSig (TagH Resource tag_acjI) f_achS => f_achS a_X0 -> (a_X0 -> f_achS ()) -> (a_X0 -> f_achS b_achU) -> f_achS b_achU -- | Allocate a resource, use it, and clean it up afterwards if an error -- occurred. bracketOnExcept :: forall (a_X0 :: Type) (b_achU :: Type) f_achS. SendSig Resource f_achS => f_achS a_X0 -> (a_X0 -> f_achS ()) -> (a_X0 -> f_achS b_achU) -> f_achS b_achU -- | Allocate a resource, use it, and clean it up afterwards. bracket'' :: forall key_acjB (a_X0 :: Type) (b_achR :: Type) f_achP. SendSigBy key_acjB Resource f_achP => f_achP a_X0 -> (a_X0 -> f_achP ()) -> (a_X0 -> f_achP b_achR) -> f_achP b_achR -- | Allocate a resource, use it, and clean it up afterwards. bracket' :: forall tag_acjx (a_X0 :: Type) (b_achR :: Type) f_achP. SendSig (TagH Resource tag_acjx) f_achP => f_achP a_X0 -> (a_X0 -> f_achP ()) -> (a_X0 -> f_achP b_achR) -> f_achP b_achR -- | Allocate a resource, use it, and clean it up afterwards. bracket :: forall (a_X0 :: Type) (b_achR :: Type) f_achP. SendSig Resource f_achP => f_achP a_X0 -> (a_X0 -> f_achP ()) -> (a_X0 -> f_achP b_achR) -> f_achP b_achR 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_acUL = LiftIns (Ask r_acUL) local'' :: forall key_acWc (r_acUI :: Type) (a_acUK :: Type) f_acUJ. SendSigBy key_acWc (Local r_acUI) f_acUJ => (r_acUI -> r_acUI) -> f_acUJ a_acUK -> f_acUJ a_acUK local' :: forall tag_acW9 (r_acUI :: Type) (a_acUK :: Type) f_acUJ. SendSig (TagH (Local r_acUI) tag_acW9) f_acUJ => (r_acUI -> r_acUI) -> f_acUJ a_acUK -> f_acUJ a_acUK local :: forall (r_acUI :: Type) (a_acUK :: Type) f_acUJ. SendSig (Local r_acUI) f_acUJ => (r_acUI -> r_acUI) -> f_acUJ a_acUK -> f_acUJ a_acUK pattern LAsk :: () => (a_acW3 ~ r_acUN, ()) => LiftIns (Ask r_acUN) f_acW2 a_acW3 ask'' :: forall key_acW0 (r_acUN :: Type) f_acW1. SendInsBy key_acW0 (Ask r_acUN) f_acW1 => f_acW1 r_acUN ask' :: forall tag_acVY (r_acUN :: Type) f_acVZ. SendIns (Tag (Ask r_acUN) tag_acVY) f_acVZ => f_acVZ r_acUN ask :: forall (r_acUN :: Type) f_acVX. SendIns (Ask r_acUN) f_acVX => f_acVX r_acUN 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_adcZ i_add0 e_add1 = (##>) ImplicitProviderKey (ImplicitProvider' c_adcZ i_add0 e_add1) withImplicit :: forall (i_add4 :: Type) (c_add5 :: (Type -> Type) -> Constraint) (e_add6 :: (Type -> Type) -> Constraint) (a_add8 :: Type) f_add7. SendSigBy ImplicitProviderKey (ImplicitProvider' c_add5 i_add4 e_add6) f_add7 => i_add4 -> (forall (g_add9 :: Type -> Type). (c_add5 g_add9, e_add6 g_add9) => (forall (x_adda :: Type). f_add7 x_adda -> g_add9 x_adda) -> g_add9 a_add8) -> f_add7 a_add8 withImplicit'' :: forall key_adfc (i_add4 :: Type) (c_add5 :: (Type -> Type) -> Constraint) (e_add6 :: (Type -> Type) -> Constraint) (a_add8 :: Type) f_add7. SendSigBy key_adfc (ImplicitProvider' c_add5 i_add4 e_add6) f_add7 => i_add4 -> (forall (g_add9 :: Type -> Type). (c_add5 g_add9, e_add6 g_add9) => (forall (x_adda :: Type). f_add7 x_adda -> g_add9 x_adda) -> g_add9 a_add8) -> f_add7 a_add8 withImplicit' :: forall tag_adf9 (i_add4 :: Type) (c_add5 :: (Type -> Type) -> Constraint) (e_add6 :: (Type -> Type) -> Constraint) (a_add8 :: Type) f_add7. SendSig (TagH (ImplicitProvider' c_add5 i_add4 e_add6) tag_adf9) f_add7 => i_add4 -> (forall (g_add9 :: Type -> Type). (c_add5 g_add9, e_add6 g_add9) => (forall (x_adda :: Type). f_add7 x_adda -> g_add9 x_adda) -> g_add9 a_add8) -> f_add7 a_add8 withImplicit'_ :: forall (i_add4 :: Type) (c_add5 :: (Type -> Type) -> Constraint) (e_add6 :: (Type -> Type) -> Constraint) (a_add8 :: Type) f_add7. SendSig (ImplicitProvider' c_add5 i_add4 e_add6) f_add7 => i_add4 -> (forall (g_add9 :: Type -> Type). (c_add5 g_add9, e_add6 g_add9) => (forall (x_adda :: Type). f_add7 x_adda -> g_add9 x_adda) -> g_add9 a_add8) -> f_add7 a_add8 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_adxO i_adxP ctx_adxQ e_adxR = (##>) ProviderKey (Provider' c_adxO i_adxP ctx_adxQ e_adxR) provide :: forall (i_adxU :: Type) (c_adxV :: (Type -> Type) -> Constraint) (e_adxW :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adxZ :: Type -> Type) f_adxX. SendSigBy ProviderKey (Provider' c_adxV i_adxU ctx_adxZ e_adxW) f_adxX => i_adxU -> (forall (g_ady0 :: Type -> Type). (c_adxV g_ady0, e_adxW g_ady0) => (forall (x_ady1 :: Type). f_adxX x_ady1 -> g_ady0 x_ady1) -> g_ady0 a_X0) -> f_adxX (ctx_adxZ a_X0) provide'' :: forall key_adAc (i_adxU :: Type) (c_adxV :: (Type -> Type) -> Constraint) (e_adxW :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adxZ :: Type -> Type) f_adxX. SendSigBy key_adAc (Provider' c_adxV i_adxU ctx_adxZ e_adxW) f_adxX => i_adxU -> (forall (g_ady0 :: Type -> Type). (c_adxV g_ady0, e_adxW g_ady0) => (forall (x_ady1 :: Type). f_adxX x_ady1 -> g_ady0 x_ady1) -> g_ady0 a_X0) -> f_adxX (ctx_adxZ a_X0) provide' :: forall tag_adA9 (i_adxU :: Type) (c_adxV :: (Type -> Type) -> Constraint) (e_adxW :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adxZ :: Type -> Type) f_adxX. SendSig (TagH (Provider' c_adxV i_adxU ctx_adxZ e_adxW) tag_adA9) f_adxX => i_adxU -> (forall (g_ady0 :: Type -> Type). (c_adxV g_ady0, e_adxW g_ady0) => (forall (x_ady1 :: Type). f_adxX x_ady1 -> g_ady0 x_ady1) -> g_ady0 a_X0) -> f_adxX (ctx_adxZ a_X0) provide'_ :: forall (i_adxU :: Type) (c_adxV :: (Type -> Type) -> Constraint) (e_adxW :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adxZ :: Type -> Type) f_adxX. SendSig (Provider' c_adxV i_adxU ctx_adxZ e_adxW) f_adxX => i_adxU -> (forall (g_ady0 :: Type -> Type). (c_adxV g_ady0, e_adxW g_ady0) => (forall (x_ady1 :: Type). f_adxX x_ady1 -> g_ady0 x_ady1) -> g_ady0 a_X0) -> f_adxX (ctx_adxZ 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_adTJ = LiftIns (Output o_adTJ) pattern LOutput :: () => (a_adUq ~ (), ()) => o_adTL -> LiftIns (Output o_adTL) f_adUp a_adUq output'' :: forall key_adUl (o_adTL :: Type) f_adUm. SendInsBy key_adUl (Output o_adTL) f_adUm => o_adTL -> f_adUm () output' :: forall tag_adUi (o_adTL :: Type) f_adUj. SendIns (Tag (Output o_adTL) tag_adUi) f_adUj => o_adTL -> f_adUj () output :: forall (o_adTL :: Type) f_adUg. SendIns (Output o_adTL) f_adUg => o_adTL -> f_adUg () module Data.Effect.NonDet data Empty (a :: Type) [Empty] :: Empty a type LEmpty = LiftIns Empty pattern LEmpty :: () => (a_ae4B ~ a_ae43, ()) => LiftIns Empty f_ae4A a_ae4B empty'' :: forall key_ae4y (a_ae43 :: Type) f_ae4z. SendInsBy key_ae4y Empty f_ae4z => f_ae4z a_ae43 empty' :: forall tag_ae4w (a_ae43 :: Type) f_ae4x. SendIns (Tag Empty tag_ae4w) f_ae4x => f_ae4x a_ae43 empty :: forall (a_ae43 :: Type) f_ae4v. SendIns Empty f_ae4v => f_ae4v a_ae43 data Choose (a :: Type) [Choose] :: Choose Bool type LChoose = LiftIns Choose pattern LChoose :: () => (a_ae86 ~ Bool, ()) => LiftIns Choose f_ae85 a_ae86 choose'' :: forall key_ae83 f_ae84. SendInsBy key_ae83 Choose f_ae84 => f_ae84 Bool choose' :: forall tag_ae81 f_ae82. SendIns (Tag Choose tag_ae81) f_ae82 => f_ae82 Bool choose :: forall f_ae80. SendIns Choose f_ae80 => f_ae80 Bool data ChooseH f (a :: Type) [ChooseH] :: f a -> f a -> ChooseH f a chooseH'' :: forall key_aebC (a_ae8h :: Type) f_ae8g. SendSigBy key_aebC ChooseH f_ae8g => f_ae8g a_ae8h -> f_ae8g a_ae8h -> f_ae8g a_ae8h chooseH' :: forall tag_aebz (a_ae8h :: Type) f_ae8g. SendSig (TagH ChooseH tag_aebz) f_ae8g => f_ae8g a_ae8h -> f_ae8g a_ae8h -> f_ae8g a_ae8h chooseH :: forall (a_ae8h :: Type) f_ae8g. SendSig ChooseH f_ae8g => f_ae8g a_ae8h -> f_ae8g a_ae8h -> f_ae8g a_ae8h 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_aeqE = LiftIns (Input i_aeqE) pattern LInput :: () => (a_aerf ~ i_aeqG, ()) => LiftIns (Input i_aeqG) f_aere a_aerf input'' :: forall key_aerc (i_aeqG :: Type) f_aerd. SendInsBy key_aerc (Input i_aeqG) f_aerd => f_aerd i_aeqG input' :: forall tag_aera (i_aeqG :: Type) f_aerb. SendIns (Tag (Input i_aeqG) tag_aera) f_aerb => f_aerb i_aeqG input :: forall (i_aeqG :: Type) f_aer9. SendIns (Input i_aeqG) f_aer9 => f_aer9 i_aeqG 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_aezZ = LiftIns (Fresh i_aezZ) pattern LFresh :: () => (a_aeAA ~ i_aeA1, ()) => LiftIns (Fresh i_aeA1) f_aeAz a_aeAA fresh'' :: forall key_aeAx (i_aeA1 :: Type) f_aeAy. SendInsBy key_aeAx (Fresh i_aeA1) f_aeAy => f_aeAy i_aeA1 fresh' :: forall tag_aeAv (i_aeA1 :: Type) f_aeAw. SendIns (Tag (Fresh i_aeA1) tag_aeAv) f_aeAw => f_aeAw i_aeA1 fresh :: forall (i_aeA1 :: Type) f_aeAu. SendIns (Fresh i_aeA1) f_aeAu => f_aeAu i_aeA1 module Data.Effect.Fix data Fix f a [Mfix] :: (a -> f a) -> Fix f a mfix'' :: forall key_aeIy (a_aeHN :: Type) f_aeHO. SendSigBy key_aeIy Fix f_aeHO => (a_aeHN -> f_aeHO a_aeHN) -> f_aeHO a_aeHN mfix' :: forall tag_aeIw (a_aeHN :: Type) f_aeHO. SendSig (TagH Fix tag_aeIw) f_aeHO => (a_aeHN -> f_aeHO a_aeHN) -> f_aeHO a_aeHN mfix :: forall (a_aeHN :: Type) f_aeHO. SendSig Fix f_aeHO => (a_aeHN -> f_aeHO a_aeHN) -> f_aeHO a_aeHN 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_aeRG ~ a_aeR2, ()) => String -> LiftIns Fail f_aeRF a_aeRG fail'' :: forall key_aeRB (a_aeR2 :: Type) f_aeRC. SendInsBy key_aeRB Fail f_aeRC => String -> f_aeRC a_aeR2 fail' :: forall tag_aeRy (a_aeR2 :: Type) f_aeRz. SendIns (Tag Fail tag_aeRy) f_aeRz => String -> f_aeRz a_aeR2 fail :: forall (a_aeR2 :: Type) f_aeRw. SendIns Fail f_aeRw => String -> f_aeRw a_aeR2 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_af0i = LiftIns (Throw e_af0i) catch'' :: forall key_af1Y (a_af0g :: Type) (e_af0h :: Type) f_af0f. SendSigBy key_af1Y (Catch e_af0h) f_af0f => f_af0f a_af0g -> (e_af0h -> f_af0f a_af0g) -> f_af0f a_af0g catch' :: forall tag_af1V (a_af0g :: Type) (e_af0h :: Type) f_af0f. SendSig (TagH (Catch e_af0h) tag_af1V) f_af0f => f_af0f a_af0g -> (e_af0h -> f_af0f a_af0g) -> f_af0f a_af0g catch :: forall (a_af0g :: Type) (e_af0h :: Type) f_af0f. SendSig (Catch e_af0h) f_af0f => f_af0f a_af0g -> (e_af0h -> f_af0f a_af0g) -> f_af0f a_af0g pattern LThrow :: () => (a_af1P ~ a_af0l, ()) => e_af0k -> LiftIns (Throw e_af0k) f_af1O a_af1P throw'' :: forall key_af1K (e_af0k :: Type) (a_af0l :: Type) f_af1L. SendInsBy key_af1K (Throw e_af0k) f_af1L => e_af0k -> f_af1L a_af0l throw' :: forall tag_af1H (e_af0k :: Type) (a_af0l :: Type) f_af1I. SendIns (Tag (Throw e_af0k) tag_af1H) f_af1I => e_af0k -> f_af1I a_af0l throw :: forall (e_af0k :: Type) (a_af0l :: Type) f_af1F. SendIns (Throw e_af0k) f_af1F => e_af0k -> f_af1F a_af0l liftEither :: (Throw e <: f, Applicative f) => Either e a -> f a joinEither :: (Throw e <: m, Monad m) => m (Either e a) -> m a joinExcept :: Monad m => Either (m a) a -> m a exc :: Monad m => m (Either (m a) a) -> m a withExcept :: (Catch e <<: f, Throw e <: f, Applicative f) => f a -> (e -> f ()) -> f a onExcept :: forall e f a. (Catch e <<: f, Throw e <: f, Applicative f) => f a -> f () -> f a 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_afAN v_afAO = LiftIns (KVStore k_afAN v_afAO) pattern LUpdateKV :: () => (a_afCE ~ (), ()) => k_afBe -> Maybe v_afBf -> LiftIns (KVStore k_afBe v_afBf) f_afCD a_afCE pattern LLookupKV :: () => (a_afCA ~ Maybe v_afAR, ()) => k_afAQ -> LiftIns (KVStore k_afAQ v_afAR) f_afCz a_afCA updateKV'' :: forall key_afCu (k_afBe :: Type) (v_afBf :: Type) f_afCv. SendInsBy key_afCu (KVStore k_afBe v_afBf) f_afCv => k_afBe -> Maybe v_afBf -> f_afCv () updateKV' :: forall tag_afCq (k_afBe :: Type) (v_afBf :: Type) f_afCr. SendIns (Tag (KVStore k_afBe v_afBf) tag_afCq) f_afCr => k_afBe -> Maybe v_afBf -> f_afCr () updateKV :: forall (k_afBe :: Type) (v_afBf :: Type) f_afCn. SendIns (KVStore k_afBe v_afBf) f_afCn => k_afBe -> Maybe v_afBf -> f_afCn () lookupKV'' :: forall key_afCk (k_afAQ :: Type) (v_afAR :: Type) f_afCl. SendInsBy key_afCk (KVStore k_afAQ v_afAR) f_afCl => k_afAQ -> f_afCl (Maybe v_afAR) lookupKV' :: forall tag_afCh (k_afAQ :: Type) (v_afAR :: Type) f_afCi. SendIns (Tag (KVStore k_afAQ v_afAR) tag_afCh) f_afCi => k_afAQ -> f_afCi (Maybe v_afAR) lookupKV :: forall (k_afAQ :: Type) (v_afAR :: Type) f_afCf. SendIns (KVStore k_afAQ v_afAR) f_afCf => k_afAQ -> f_afCf (Maybe v_afAR) 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_agaW b_agaX = LiftIns (Yield a_agaW b_agaX) pattern LYield :: () => (a_agbN ~ b_agb0, ()) => a_agaZ -> LiftIns (Yield a_agaZ b_agb0) f_agbM a_agbN yield'' :: forall key_agbI (a_agaZ :: Type) (b_agb0 :: Type) f_agbJ. SendInsBy key_agbI (Yield a_agaZ b_agb0) f_agbJ => a_agaZ -> f_agbJ b_agb0 yield' :: forall tag_agbF (a_agaZ :: Type) (b_agb0 :: Type) f_agbG. SendIns (Tag (Yield a_agaZ b_agb0) tag_agbF) f_agbG => a_agaZ -> f_agbG b_agb0 yield :: forall (a_agaZ :: Type) (b_agb0 :: Type) f_agbD. SendIns (Yield a_agaZ b_agb0) f_agbD => a_agaZ -> f_agbD b_agb0 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_agKz (a_agJ9 :: Type) m_agJa. SendSigBy key_agKz CallCC m_agJa => (forall (r_agJb :: Type). (a_agJ9 -> m_agJa r_agJb) -> m_agJa a_agJ9) -> m_agJa a_agJ9 callCC' :: forall tag_agKx (a_agJ9 :: Type) m_agJa. SendSig (TagH CallCC tag_agKx) m_agJa => (forall (r_agJb :: Type). (a_agJ9 -> m_agJa r_agJb) -> m_agJa a_agJ9) -> m_agJa a_agJ9 callCC :: forall (a_agJ9 :: Type) m_agJa. SendSig CallCC m_agJa => (forall (r_agJb :: Type). (a_agJ9 -> m_agJa r_agJb) -> m_agJa a_agJ9) -> m_agJa a_agJ9 module Data.Effect.Concurrent.Timer data Timer a [Clock] :: Timer DiffTime [Sleep] :: DiffTime -> Timer () type LTimer = LiftIns Timer pattern LSleep :: () => (a_agTp ~ (), ()) => DiffTime -> LiftIns Timer f_agTo a_agTp pattern LClock :: () => (a_agTm ~ DiffTime, ()) => LiftIns Timer f_agTl a_agTm sleep'' :: forall key_agTi f_agTj. SendInsBy key_agTi Timer f_agTj => DiffTime -> f_agTj () sleep' :: forall tag_agTf f_agTg. SendIns (Tag Timer tag_agTf) f_agTg => DiffTime -> f_agTg () sleep :: forall f_agTd. SendIns Timer f_agTd => DiffTime -> f_agTd () clock'' :: forall key_agTb f_agTc. SendInsBy key_agTb Timer f_agTc => f_agTc DiffTime clock' :: forall tag_agT9 f_agTa. SendIns (Tag Timer tag_agT9) f_agTa => f_agTa DiffTime clock :: forall f_agT8. SendIns Timer f_agT8 => f_agT8 DiffTime withElapsedTime :: (Timer <: m, Monad m) => (m DiffTime -> m a) -> m a measureTime :: (Timer <: m, Monad m) => m a -> m (DiffTime, a) sleepUntil :: (Timer <: m, Monad m) => DiffTime -> m (Maybe DiffTime) runCyclic :: (Timer <: m, Monad m) => m DiffTime -> m () -> m a runPeriodic :: (Timer <: m, Monad m) => DiffTime -> m () -> m a periodicTimer :: forall m a. (Timer <: m, Yield () () <: m, Monad m) => DiffTime -> m a cyclicTimer :: forall m a. (Timer <: m, Yield () DiffTime <: m, Monad m) => m a data CyclicTimer a [Wait] :: DiffTime -> CyclicTimer () type LCyclicTimer = LiftIns CyclicTimer pattern LWait :: () => (a_ahhc ~ (), ()) => DiffTime -> LiftIns CyclicTimer f_ahhb a_ahhc wait'' :: forall key_ahh7 f_ahh8. SendInsBy key_ahh7 CyclicTimer f_ahh8 => DiffTime -> f_ahh8 () wait' :: forall tag_ahh4 f_ahh5. SendIns (Tag CyclicTimer tag_ahh4) f_ahh5 => DiffTime -> f_ahh5 () wait :: forall f_ahh2. SendIns CyclicTimer f_ahh2 => DiffTime -> f_ahh2 () module Data.Effect.Concurrent.Thread data Thread' tid f (a :: Type) [ForkThread] :: f () -> Thread' tid f tid data ThreadKey type Thread tid_ai23 = (##>) ThreadKey (Thread' tid_ai23) forkThread :: forall (tid_ai27 :: Type) f_ai26. SendSigBy ThreadKey (Thread' tid_ai27) f_ai26 => f_ai26 () -> f_ai26 tid_ai27 forkThread'' :: forall key_ai2Q (tid_ai27 :: Type) f_ai26. SendSigBy key_ai2Q (Thread' tid_ai27) f_ai26 => f_ai26 () -> f_ai26 tid_ai27 forkThread' :: forall tag_ai2O (tid_ai27 :: Type) f_ai26. SendSig (TagH (Thread' tid_ai27) tag_ai2O) f_ai26 => f_ai26 () -> f_ai26 tid_ai27 forkThread'_ :: forall (tid_ai27 :: Type) f_ai26. SendSig (Thread' tid_ai27) f_ai26 => f_ai26 () -> f_ai26 tid_ai27 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_aigP = LiftIns (ChronicleF c_aigP) condemn'' :: forall key_aijS (a_aigN :: Type) (c_aigO :: Type) f_aigM. SendSigBy key_aijS (ChronicleH c_aigO) f_aigM => f_aigM a_aigN -> f_aigM a_aigN condemn' :: forall tag_aijQ (a_aigN :: Type) (c_aigO :: Type) f_aigM. SendSig (TagH (ChronicleH c_aigO) tag_aijQ) f_aigM => f_aigM a_aigN -> f_aigM a_aigN condemn :: forall (a_aigN :: Type) (c_aigO :: Type) f_aigM. SendSig (ChronicleH c_aigO) f_aigM => f_aigM a_aigN -> f_aigM a_aigN absolve'' :: forall key_aijM (a_aigJ :: Type) (c_aigL :: Type) f_aigK. SendSigBy key_aijM (ChronicleH c_aigL) f_aigK => a_aigJ -> f_aigK a_aigJ -> f_aigK a_aigJ absolve' :: forall tag_aijJ (a_aigJ :: Type) (c_aigL :: Type) f_aigK. SendSig (TagH (ChronicleH c_aigL) tag_aijJ) f_aigK => a_aigJ -> f_aigK a_aigJ -> f_aigK a_aigJ absolve :: forall (a_aigJ :: Type) (c_aigL :: Type) f_aigK. SendSig (ChronicleH c_aigL) f_aigK => a_aigJ -> f_aigK a_aigJ -> f_aigK a_aigJ memento'' :: forall key_aijF (a_X0 :: Type) (c_aigI :: Type) f_aigG. SendSigBy key_aijF (ChronicleH c_aigI) f_aigG => f_aigG a_X0 -> f_aigG (Either c_aigI a_X0) memento' :: forall tag_aijD (a_X0 :: Type) (c_aigI :: Type) f_aigG. SendSig (TagH (ChronicleH c_aigI) tag_aijD) f_aigG => f_aigG a_X0 -> f_aigG (Either c_aigI a_X0) memento :: forall (a_X0 :: Type) (c_aigI :: Type) f_aigG. SendSig (ChronicleH c_aigI) f_aigG => f_aigG a_X0 -> f_aigG (Either c_aigI a_X0) pattern LConfess :: () => (a_aijt ~ a_aigT, ()) => c_aigS -> LiftIns (ChronicleF c_aigS) f_aijs a_aijt pattern LDictate :: () => (a_aijq ~ (), ()) => c_aigR -> LiftIns (ChronicleF c_aigR) f_aijp a_aijq confess'' :: forall key_aijl (c_aigS :: Type) (a_aigT :: Type) f_aijm. SendInsBy key_aijl (ChronicleF c_aigS) f_aijm => c_aigS -> f_aijm a_aigT confess' :: forall tag_aiji (c_aigS :: Type) (a_aigT :: Type) f_aijj. SendIns (Tag (ChronicleF c_aigS) tag_aiji) f_aijj => c_aigS -> f_aijj a_aigT confess :: forall (c_aigS :: Type) (a_aigT :: Type) f_aijg. SendIns (ChronicleF c_aigS) f_aijg => c_aigS -> f_aijg a_aigT dictate'' :: forall key_aijd (c_aigR :: Type) f_aije. SendInsBy key_aijd (ChronicleF c_aigR) f_aije => c_aigR -> f_aije () dictate' :: forall tag_aija (c_aigR :: Type) f_aijb. SendIns (Tag (ChronicleF c_aigR) tag_aija) f_aijb => c_aigR -> f_aijb () dictate :: forall (c_aigR :: Type) f_aij8. SendIns (ChronicleF c_aigR) f_aij8 => c_aigR -> f_aij8 () 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_aj2s = LiftIns (Accum w_aj2s) pattern LLook :: () => (a_aj3z ~ w_aj2w, ()) => LiftIns (Accum w_aj2w) f_aj3y a_aj3z pattern LAdd :: () => (a_aj3x ~ (), ()) => w_X0 -> LiftIns (Accum f_aj2v) f_aj3w a_aj3x look'' :: forall key_aj3t (w_aj2w :: Type) f_aj3u. SendInsBy key_aj3t (Accum w_aj2w) f_aj3u => f_aj3u w_aj2w look' :: forall tag_aj3r (w_aj2w :: Type) f_aj3s. SendIns (Tag (Accum w_aj2w) tag_aj3r) f_aj3s => f_aj3s w_aj2w look :: forall (w_aj2w :: Type) f_aj3q. SendIns (Accum w_aj2w) f_aj3q => f_aj3q w_aj2w add'' :: forall key_aj3n (w_X0 :: Type) (f_aj2v :: Type) f_aj3o. SendInsBy key_aj3n (Accum f_aj2v) f_aj3o => w_X0 -> f_aj3o () add' :: forall tag_aj3k (w_X0 :: Type) (f_aj2v :: Type) f_aj3l. SendIns (Tag (Accum f_aj2v) tag_aj3k) f_aj3l => w_X0 -> f_aj3l () add :: forall (w_X0 :: Type) (f_aj2v :: Type) f_aj3i. SendIns (Accum f_aj2v) f_aj3i => w_X0 -> f_aj3i ()