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