packages feed

data-effects 0.1.2.0 → 0.2.0.0

raw patch · 22 files changed

+113/−141 lines, 22 filesdep ~basedep ~data-defaultdep ~data-effects-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, data-default, data-effects-core, data-effects-th, lens, tasty, time

API changes (from Hackage documentation)

- Data.Effect.Accum: pattern LLook :: () => (a_aj6L ~ w_aj5I, ()) => LiftIns (Accum w_aj5I) f_aj6K a_aj6L
- Data.Effect.Accum: pattern LAdd :: () => (a_aj6J ~ (), ()) => w_X0 -> LiftIns (Accum f_aj5H) f_aj6I a_aj6J
- Data.Effect.Chronicle: pattern LDictate :: () => (a_aimC ~ (), ()) => c_aik3 -> LiftIns (ChronicleF c_aik3) f_aimB a_aimC
- Data.Effect.Chronicle: pattern LConfess :: () => (a_aimF ~ a_aik5, ()) => c_aik4 -> LiftIns (ChronicleF c_aik4) f_aimE a_aimF
- Data.Effect.Concurrent.Timer: pattern LClock :: () => (a_agWy ~ DiffTime, ()) => LiftIns Timer f_agWx a_agWy
- Data.Effect.Coroutine: Coroutine :: a -> (b -> f (Status f a b r)) -> Status f a b r
- Data.Effect.Coroutine: pattern LYield :: () => (a_ageZ ~ b_agec, ()) => a_ageb -> LiftIns (Yield a_ageb b_agec) f_ageY a_ageZ
- Data.Effect.Except: pattern LThrow :: () => (a_af51 ~ a_af3x, ()) => e_af3w -> LiftIns (Throw e_af3w) f_af50 a_af51
- Data.Effect.Fresh: pattern LFresh :: () => (a_aeDM ~ i_aeDd, ()) => LiftIns (Fresh i_aeDd) f_aeDL a_aeDM
- Data.Effect.Input: pattern LInput :: () => (a_aeur ~ i_aetS, ()) => LiftIns (Input i_aetS) f_aeuq a_aeur
- Data.Effect.KVStore: pattern LLookupKV :: () => (a_afFM ~ Maybe v_afE3, ()) => k_afE2 -> LiftIns (KVStore k_afE2 v_afE3) f_afFL a_afFM
- Data.Effect.KVStore: pattern LUpdateKV :: () => (a_afFQ ~ (), ()) => k_afEq -> Maybe v_afEr -> LiftIns (KVStore k_afEq v_afEr) f_afFP a_afFQ
- Data.Effect.NonDet: pattern LChoose :: () => (a_aebi ~ Bool, ()) => LiftIns Choose f_aebh a_aebi
- Data.Effect.Output: pattern LOutput :: () => (a_adXC ~ (), ()) => o_adWX -> LiftIns (Output o_adWX) f_adXB a_adXC
- Data.Effect.Provider: 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)
- Data.Effect.Provider: instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Provider.Provider' c i ctx e)
- Data.Effect.Provider: 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)
- Data.Effect.Provider: provide'_ :: forall (i_adB6 :: Type) (c_adB7 :: (Type -> Type) -> Constraint) (e_adB8 :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adBb :: Type -> Type) f_adB9. SendSig (Provider' c_adB7 i_adB6 ctx_adBb e_adB8) f_adB9 => i_adB6 -> (forall (g_adBc :: Type -> Type). (c_adB7 g_adBc, e_adB8 g_adBc) => (forall (x_adBd :: Type). f_adB9 x_adBd -> g_adBc x_adBd) -> g_adBc a_X0) -> f_adB9 (ctx_adBb a_X0)
- Data.Effect.Provider: type ApplicativeProvider i ctx e = Provider Applicative i ctx e
- Data.Effect.Provider: type ApplicativeProvider' = Provider' Applicative
- Data.Effect.Provider: type MonadProvider i ctx e = Provider Monad i ctx e
- Data.Effect.Provider: type MonadProvider' = Provider' Monad
- Data.Effect.Provider.Implicit: (.!) :: forall c e i f a. SendSigBy ImplicitProviderKey (ImplicitProvider' c i e) f => i -> (forall g. (c g, e g) => g a) -> f a
- Data.Effect.Provider.Implicit: (..!) :: 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
- Data.Effect.Provider.Implicit: [WithImplicit] :: i -> (forall g. (c g, e g) => (forall x. f x -> g x) -> g a) -> ImplicitProvider' c i e f a
- Data.Effect.Provider.Implicit: data ImplicitProvider' c i e (f :: Type -> Type) (a :: Type)
- Data.Effect.Provider.Implicit: data ImplicitProviderKey
- Data.Effect.Provider.Implicit: instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Provider.Implicit.ImplicitProvider' c i e)
- Data.Effect.Provider.Implicit: type ApplicativeImplicitProvider i e = ImplicitProvider Applicative i e
- Data.Effect.Provider.Implicit: type ImplicitProvider c_adgb i_adgc e_adgd = (##>) ImplicitProviderKey (ImplicitProvider' c_adgb i_adgc e_adgd)
- Data.Effect.Provider.Implicit: type MonadImplicitProvider i e = ImplicitProvider Monad i e
- Data.Effect.Provider.Implicit: withImplicit :: forall (i_adgg :: Type) (c_adgh :: (Type -> Type) -> Constraint) (e_adgi :: (Type -> Type) -> Constraint) (a_adgk :: Type) f_adgj. SendSigBy ImplicitProviderKey (ImplicitProvider' c_adgh i_adgg e_adgi) f_adgj => i_adgg -> (forall (g_adgl :: Type -> Type). (c_adgh g_adgl, e_adgi g_adgl) => (forall (x_adgm :: Type). f_adgj x_adgm -> g_adgl x_adgm) -> g_adgl a_adgk) -> f_adgj a_adgk
- Data.Effect.Provider.Implicit: withImplicit' :: forall tag_adil (i_adgg :: Type) (c_adgh :: (Type -> Type) -> Constraint) (e_adgi :: (Type -> Type) -> Constraint) (a_adgk :: Type) f_adgj. SendSig (TagH (ImplicitProvider' c_adgh i_adgg e_adgi) tag_adil) f_adgj => i_adgg -> (forall (g_adgl :: Type -> Type). (c_adgh g_adgl, e_adgi g_adgl) => (forall (x_adgm :: Type). f_adgj x_adgm -> g_adgl x_adgm) -> g_adgl a_adgk) -> f_adgj a_adgk
- Data.Effect.Provider.Implicit: withImplicit'' :: forall key_adio (i_adgg :: Type) (c_adgh :: (Type -> Type) -> Constraint) (e_adgi :: (Type -> Type) -> Constraint) (a_adgk :: Type) f_adgj. SendSigBy key_adio (ImplicitProvider' c_adgh i_adgg e_adgi) f_adgj => i_adgg -> (forall (g_adgl :: Type -> Type). (c_adgh g_adgl, e_adgi g_adgl) => (forall (x_adgm :: Type). f_adgj x_adgm -> g_adgl x_adgm) -> g_adgl a_adgk) -> f_adgj a_adgk
- Data.Effect.Provider.Implicit: withImplicit'_ :: forall (i_adgg :: Type) (c_adgh :: (Type -> Type) -> Constraint) (e_adgi :: (Type -> Type) -> Constraint) (a_adgk :: Type) f_adgj. SendSig (ImplicitProvider' c_adgh i_adgg e_adgi) f_adgj => i_adgg -> (forall (g_adgl :: Type -> Type). (c_adgh g_adgl, e_adgi g_adgl) => (forall (x_adgm :: Type). f_adgj x_adgm -> g_adgl x_adgm) -> g_adgl a_adgk) -> f_adgj a_adgk
- Data.Effect.Reader: pattern LAsk :: () => (a_acZf ~ r_acXZ, ()) => LiftIns (Ask r_acXZ) f_acZe a_acZf
- Data.Effect.ShiftReset: [Shift_] :: (forall (r :: Type). (a -> m r) -> m r) -> Shift_ m a
- Data.Effect.ShiftReset: data Shift_ m a
- Data.Effect.ShiftReset: shift_ :: forall (a_abKy :: Type) m_abKz. SendSig Shift_ m_abKz => (forall (r_abKA :: Type). (a_abKy -> m_abKz r_abKA) -> m_abKz r_abKA) -> m_abKz a_abKy
- Data.Effect.State: pattern LGet :: () => (a_abnm ~ s_abmq, ()) => LiftIns (State s_abmq) f_abnl a_abnm
- Data.Effect.State: pattern LPut :: () => (a_abnp ~ (), ()) => s_abmr -> LiftIns (State s_abmr) f_abno a_abnp
- Data.Effect.Writer: pattern LTell :: () => (a_aawt ~ (), ()) => w_aamv -> LiftIns (Tell w_aamv) f_aaws a_aawt
+ Data.Effect.Accum: pattern LLook :: forall a w f. () => (a ~ w, ()) => LiftFOE (Accum w) f a
+ Data.Effect.Accum: pattern LAdd :: forall a f1 f2 w. () => (a ~ (), ()) => w -> LiftFOE (Accum f1) f2 a
+ Data.Effect.Chronicle: pattern LDictate :: forall a c f. () => (a ~ (), ()) => c -> LiftFOE (ChronicleF c) f a
+ Data.Effect.Concurrent.Timer: pattern LClock :: forall a f. () => (a ~ DiffTime, ()) => LiftFOE Timer f a
+ Data.Effect.Coroutine: Continue :: a -> (b -> f (Status f a b r)) -> Status (f :: Type -> Type) a b r
+ Data.Effect.Coroutine: pattern LYield :: forall a1 b a2 f. () => (a1 ~ b, ()) => a2 -> LiftFOE (Yield a2 b) f a1
+ Data.Effect.Except: pattern LThrow :: forall a e f a1. () => (a ~ a1, ()) => e -> LiftFOE (Throw e) f a
+ Data.Effect.Fresh: pattern LFresh :: forall a i f. () => (a ~ i, ()) => LiftFOE (Fresh i) f a
+ Data.Effect.Input: pattern LInput :: forall a i f. () => (a ~ i, ()) => LiftFOE (Input i) f a
+ Data.Effect.KVStore: pattern LLookupKV :: forall a v k f. () => (a ~ Maybe v, ()) => k -> LiftFOE (KVStore k v) f a
+ Data.Effect.NonDet: pattern LChoose :: forall a f. () => (a ~ Bool, ()) => LiftFOE Choose f a
+ Data.Effect.Output: pattern LOutput :: forall a o f. () => (a ~ (), ()) => o -> LiftFOE (Output o) f a
+ Data.Effect.Provider: (.!) :: forall i f a b. (SendHOEBy (ProviderKey Identity i) (Provider' Identity i b) f, Functor f) => i -> ((f ~> b) -> b a) -> f a
+ Data.Effect.Provider: (..!) :: forall ctx i f a b. SendHOEBy (ProviderKey ctx i) (Provider' ctx i b) f => i -> ((f ~> b) -> b a) -> f (ctx a)
+ Data.Effect.Provider: infix 2 ..!
+ Data.Effect.Provider: instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Provider.Provider' ctx i b)
+ Data.Effect.Provider: type Provider_ i (b :: Type -> Type) = ProviderKey Identity i ##> Provider' Identity i b
+ Data.Effect.Reader: pattern LAsk :: forall a r f. () => (a ~ r, ()) => LiftFOE (Ask r) f a
+ Data.Effect.ShiftReset: [Shift_'] :: forall a (b :: Type -> Type) (m :: Type -> Type). (forall r. () => (a -> b r) -> (forall x. () => m x -> b x) -> b r) -> Shift_' b m a
+ Data.Effect.ShiftReset: data Shift_' (b :: Type -> Type) (m :: Type -> Type) a
+ Data.Effect.ShiftReset: data Shift_Key
+ Data.Effect.ShiftReset: instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.ShiftReset.Shift' r b)
+ Data.Effect.ShiftReset: instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.ShiftReset.Shift_' b)
+ Data.Effect.ShiftReset: shift_''' :: forall {k} (key :: k) a b m. SendHOEBy key (Shift_' b) m => (forall r. () => (a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
+ Data.Effect.ShiftReset: shift_''_ :: forall a b m. SendHOE (Shift_' b) m => (forall r. () => (a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
+ Data.Effect.ShiftReset: type Shift_ (b :: Type -> Type) = Shift_Key ##> Shift_' b
+ Data.Effect.State: pattern LGet :: forall a s f. () => (a ~ s, ()) => LiftFOE (State s) f a
+ Data.Effect.State: pattern LPut :: forall a s f. () => (a ~ (), ()) => s -> LiftFOE (State s) f a
+ Data.Effect.Writer: pattern LTell :: forall a w f. () => (a ~ (), ()) => w -> LiftFOE (Tell w) f a
- Data.Effect.Accum: [Add] :: w -> Accum f ()
+ Data.Effect.Accum: [Add] :: forall w1 w. w1 -> Accum w ()
- Data.Effect.Accum: [Look] :: Accum w w
+ Data.Effect.Accum: [Look] :: forall w. Accum w w
- Data.Effect.Accum: add :: forall (w_X0 :: Type) (f_aj5H :: Type) f_aj6u. SendIns (Accum f_aj5H) f_aj6u => w_X0 -> f_aj6u ()
+ Data.Effect.Accum: add :: forall w f1 f2. SendFOE (Accum f1) f2 => w -> f2 ()
- Data.Effect.Accum: add' :: forall tag_aj6w (w_X0 :: Type) (f_aj5H :: Type) f_aj6x. SendIns (Tag (Accum f_aj5H) tag_aj6w) f_aj6x => w_X0 -> f_aj6x ()
+ Data.Effect.Accum: add' :: forall {k} (tag :: k) w f1 f2. SendFOE (Tag (Accum f1) tag) f2 => w -> f2 ()
- Data.Effect.Accum: add'' :: forall key_aj6z (w_X0 :: Type) (f_aj5H :: Type) f_aj6A. SendInsBy key_aj6z (Accum f_aj5H) f_aj6A => w_X0 -> f_aj6A ()
+ Data.Effect.Accum: add'' :: forall {k} (key :: k) w f1 f2. SendFOEBy key (Accum f1) f2 => w -> f2 ()
- Data.Effect.Accum: look :: forall (w_aj5I :: Type) f_aj6C. SendIns (Accum w_aj5I) f_aj6C => f_aj6C w_aj5I
+ Data.Effect.Accum: look :: SendFOE (Accum w) f => f w
- Data.Effect.Accum: look' :: forall tag_aj6D (w_aj5I :: Type) f_aj6E. SendIns (Tag (Accum w_aj5I) tag_aj6D) f_aj6E => f_aj6E w_aj5I
+ Data.Effect.Accum: look' :: forall {k} (tag :: k) w f. SendFOE (Tag (Accum w) tag) f => f w
- Data.Effect.Accum: look'' :: forall key_aj6F (w_aj5I :: Type) f_aj6G. SendInsBy key_aj6F (Accum w_aj5I) f_aj6G => f_aj6G w_aj5I
+ Data.Effect.Accum: look'' :: forall {k} (key :: k) w f. SendFOEBy key (Accum w) f => f w
- Data.Effect.Accum: type LAccum w_aj5E = LiftIns (Accum w_aj5E)
+ Data.Effect.Accum: type LAccum w = LiftFOE Accum w
- Data.Effect.Chronicle: [Absolve] :: a -> f a -> ChronicleH c f a
+ Data.Effect.Chronicle: [Absolve] :: forall a (f :: Type -> Type) c. a -> f a -> ChronicleH c f a
- Data.Effect.Chronicle: [Condemn] :: f a -> ChronicleH c f a
+ Data.Effect.Chronicle: [Condemn] :: forall (f :: Type -> Type) a c. f a -> ChronicleH c f a
- Data.Effect.Chronicle: [Confess] :: c -> ChronicleF c a
+ Data.Effect.Chronicle: [Confess] :: forall c a. c -> ChronicleF c a
- Data.Effect.Chronicle: [Dictate] :: c -> ChronicleF c ()
+ Data.Effect.Chronicle: [Dictate] :: forall c. c -> ChronicleF c ()
- Data.Effect.Chronicle: [Memento] :: f a -> ChronicleH c f (Either c a)
+ Data.Effect.Chronicle: [Memento] :: forall (f :: Type -> Type) a1 c. f a1 -> ChronicleH c f (Either c a1)
- Data.Effect.Chronicle: absolve :: forall (a_aijV :: Type) (c_aijX :: Type) f_aijW. SendSig (ChronicleH c_aijX) f_aijW => a_aijV -> f_aijW a_aijV -> f_aijW a_aijV
+ Data.Effect.Chronicle: absolve :: forall a c f. SendHOE (ChronicleH c) f => a -> f a -> f a
- Data.Effect.Chronicle: absolve' :: forall tag_aimV (a_aijV :: Type) (c_aijX :: Type) f_aijW. SendSig (TagH (ChronicleH c_aijX) tag_aimV) f_aijW => a_aijV -> f_aijW a_aijV -> f_aijW a_aijV
+ Data.Effect.Chronicle: absolve' :: forall {k} (tag :: k) a c f. SendHOE (TagH (ChronicleH c) tag) f => a -> f a -> f a
- Data.Effect.Chronicle: absolve'' :: forall key_aimY (a_aijV :: Type) (c_aijX :: Type) f_aijW. SendSigBy key_aimY (ChronicleH c_aijX) f_aijW => a_aijV -> f_aijW a_aijV -> f_aijW a_aijV
+ Data.Effect.Chronicle: absolve'' :: forall {k} (key :: k) a c f. SendHOEBy key (ChronicleH c) f => a -> f a -> f a
- Data.Effect.Chronicle: condemn :: forall (a_aijZ :: Type) (c_aik0 :: Type) f_aijY. SendSig (ChronicleH c_aik0) f_aijY => f_aijY a_aijZ -> f_aijY a_aijZ
+ Data.Effect.Chronicle: condemn :: forall a c f. SendHOE (ChronicleH c) f => f a -> f a
- Data.Effect.Chronicle: condemn' :: forall tag_ain2 (a_aijZ :: Type) (c_aik0 :: Type) f_aijY. SendSig (TagH (ChronicleH c_aik0) tag_ain2) f_aijY => f_aijY a_aijZ -> f_aijY a_aijZ
+ Data.Effect.Chronicle: condemn' :: forall {k} (tag :: k) a c f. SendHOE (TagH (ChronicleH c) tag) f => f a -> f a
- Data.Effect.Chronicle: condemn'' :: forall key_ain4 (a_aijZ :: Type) (c_aik0 :: Type) f_aijY. SendSigBy key_ain4 (ChronicleH c_aik0) f_aijY => f_aijY a_aijZ -> f_aijY a_aijZ
+ Data.Effect.Chronicle: condemn'' :: forall {k} (key :: k) a c f. SendHOEBy key (ChronicleH c) f => f a -> f a
- Data.Effect.Chronicle: confess :: forall (c_aik4 :: Type) (a_aik5 :: Type) f_aims. SendIns (ChronicleF c_aik4) f_aims => c_aik4 -> f_aims a_aik5
+ Data.Effect.Chronicle: confess :: forall c a f. SendFOE (ChronicleF c) f => c -> f a
- Data.Effect.Chronicle: confess' :: forall tag_aimu (c_aik4 :: Type) (a_aik5 :: Type) f_aimv. SendIns (Tag (ChronicleF c_aik4) tag_aimu) f_aimv => c_aik4 -> f_aimv a_aik5
+ Data.Effect.Chronicle: confess' :: forall {k} (tag :: k) c a f. SendFOE (Tag (ChronicleF c) tag) f => c -> f a
- Data.Effect.Chronicle: confess'' :: forall key_aimx (c_aik4 :: Type) (a_aik5 :: Type) f_aimy. SendInsBy key_aimx (ChronicleF c_aik4) f_aimy => c_aik4 -> f_aimy a_aik5
+ Data.Effect.Chronicle: confess'' :: forall {k} (key :: k) c a f. SendFOEBy key (ChronicleF c) f => c -> f a
- Data.Effect.Chronicle: data ChronicleH c f a
+ Data.Effect.Chronicle: data ChronicleH c (f :: Type -> Type) a
- Data.Effect.Chronicle: dictate :: forall (c_aik3 :: Type) f_aimk. SendIns (ChronicleF c_aik3) f_aimk => c_aik3 -> f_aimk ()
+ Data.Effect.Chronicle: dictate :: SendFOE (ChronicleF c) f => c -> f ()
- Data.Effect.Chronicle: dictate' :: forall tag_aimm (c_aik3 :: Type) f_aimn. SendIns (Tag (ChronicleF c_aik3) tag_aimm) f_aimn => c_aik3 -> f_aimn ()
+ Data.Effect.Chronicle: dictate' :: forall {k} (tag :: k) c f. SendFOE (Tag (ChronicleF c) tag) f => c -> f ()
- Data.Effect.Chronicle: dictate'' :: forall key_aimp (c_aik3 :: Type) f_aimq. SendInsBy key_aimp (ChronicleF c_aik3) f_aimq => c_aik3 -> f_aimq ()
+ Data.Effect.Chronicle: dictate'' :: forall {k} (key :: k) c f. SendFOEBy key (ChronicleF c) f => c -> f ()
- Data.Effect.Chronicle: memento :: forall (a_X0 :: Type) (c_aijU :: Type) f_aijS. SendSig (ChronicleH c_aijU) f_aijS => f_aijS a_X0 -> f_aijS (Either c_aijU a_X0)
+ Data.Effect.Chronicle: memento :: forall a c f. SendHOE (ChronicleH c) f => f a -> f (Either c a)
- Data.Effect.Chronicle: memento' :: forall tag_aimP (a_X0 :: Type) (c_aijU :: Type) f_aijS. SendSig (TagH (ChronicleH c_aijU) tag_aimP) f_aijS => f_aijS a_X0 -> f_aijS (Either c_aijU a_X0)
+ Data.Effect.Chronicle: memento' :: forall {k} (tag :: k) a c f. SendHOE (TagH (ChronicleH c) tag) f => f a -> f (Either c a)
- Data.Effect.Chronicle: memento'' :: forall key_aimR (a_X0 :: Type) (c_aijU :: Type) f_aijS. SendSigBy key_aimR (ChronicleH c_aijU) f_aijS => f_aijS a_X0 -> f_aijS (Either c_aijU a_X0)
+ Data.Effect.Chronicle: memento'' :: forall {k} (key :: k) a c f. SendHOEBy key (ChronicleH c) f => f a -> f (Either c a)
- Data.Effect.Chronicle: type LChronicleF c_aik1 = LiftIns (ChronicleF c_aik1)
+ Data.Effect.Chronicle: type LChronicleF c = LiftFOE ChronicleF c
- Data.Effect.Concurrent.Thread: [ForkThread] :: f () -> Thread' tid f tid
+ Data.Effect.Concurrent.Thread: [ForkThread] :: forall (f :: Type -> Type) tid. f () -> Thread' tid f tid
- Data.Effect.Concurrent.Thread: data Thread' tid f (a :: Type)
+ Data.Effect.Concurrent.Thread: data Thread' tid (f :: Type -> Type) a
- Data.Effect.Concurrent.Thread: forkThread :: forall (tid_ai5j :: Type) f_ai5i. SendSigBy ThreadKey (Thread' tid_ai5j) f_ai5i => f_ai5i () -> f_ai5i tid_ai5j
+ Data.Effect.Concurrent.Thread: forkThread :: SendHOEBy ThreadKey (Thread' tid) f => f () -> f tid
- Data.Effect.Concurrent.Thread: forkThread' :: forall tag_ai60 (tid_ai5j :: Type) f_ai5i. SendSig (TagH (Thread' tid_ai5j) tag_ai60) f_ai5i => f_ai5i () -> f_ai5i tid_ai5j
+ Data.Effect.Concurrent.Thread: forkThread' :: forall {k} (tag :: k) tid f. SendHOE (TagH (Thread' tid) tag) f => f () -> f tid
- Data.Effect.Concurrent.Thread: forkThread'' :: forall key_ai62 (tid_ai5j :: Type) f_ai5i. SendSigBy key_ai62 (Thread' tid_ai5j) f_ai5i => f_ai5i () -> f_ai5i tid_ai5j
+ Data.Effect.Concurrent.Thread: forkThread'' :: forall {k} (key :: k) tid f. SendHOEBy key (Thread' tid) f => f () -> f tid
- Data.Effect.Concurrent.Thread: forkThread'_ :: forall (tid_ai5j :: Type) f_ai5i. SendSig (Thread' tid_ai5j) f_ai5i => f_ai5i () -> f_ai5i tid_ai5j
+ Data.Effect.Concurrent.Thread: forkThread'_ :: SendHOE (Thread' tid) f => f () -> f tid
- Data.Effect.Concurrent.Thread: type Thread tid_ai5f = (##>) ThreadKey (Thread' tid_ai5f)
+ Data.Effect.Concurrent.Thread: type Thread tid = ThreadKey ##> Thread' tid
- Data.Effect.Concurrent.Timer: clock :: forall f_agWk. SendIns Timer f_agWk => f_agWk DiffTime
+ Data.Effect.Concurrent.Timer: clock :: SendFOE Timer f => f DiffTime
- Data.Effect.Concurrent.Timer: clock' :: forall tag_agWl f_agWm. SendIns (Tag Timer tag_agWl) f_agWm => f_agWm DiffTime
+ Data.Effect.Concurrent.Timer: clock' :: forall {k} (tag :: k) f. SendFOE (Tag Timer tag) f => f DiffTime
- Data.Effect.Concurrent.Timer: clock'' :: forall key_agWn f_agWo. SendInsBy key_agWn Timer f_agWo => f_agWo DiffTime
+ Data.Effect.Concurrent.Timer: clock'' :: forall {k} (key :: k) f. SendFOEBy key Timer f => f DiffTime
- Data.Effect.Concurrent.Timer: cyclicTimer :: forall m a. (Timer <: m, Yield () DiffTime <: m, Monad m) => m a
+ Data.Effect.Concurrent.Timer: cyclicTimer :: (Timer <: m, Yield () DiffTime <: m, Monad m) => m a
- Data.Effect.Concurrent.Timer: pattern LWait :: () => (a_ahko ~ (), ()) => DiffTime -> LiftIns CyclicTimer f_ahkn a_ahko
+ Data.Effect.Concurrent.Timer: pattern LWait :: forall a f. () => (a ~ (), ()) => DiffTime -> LiftFOE CyclicTimer f a
- Data.Effect.Concurrent.Timer: periodicTimer :: forall m a. (Timer <: m, Yield () () <: m, Monad m) => DiffTime -> m a
+ Data.Effect.Concurrent.Timer: periodicTimer :: (Timer <: m, Yield () () <: m, Monad m) => DiffTime -> m a
- Data.Effect.Concurrent.Timer: sleep :: forall f_agWp. SendIns Timer f_agWp => DiffTime -> f_agWp ()
+ Data.Effect.Concurrent.Timer: sleep :: SendFOE Timer f => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: sleep' :: forall tag_agWr f_agWs. SendIns (Tag Timer tag_agWr) f_agWs => DiffTime -> f_agWs ()
+ Data.Effect.Concurrent.Timer: sleep' :: forall {k} (tag :: k) f. SendFOE (Tag Timer tag) f => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: sleep'' :: forall key_agWu f_agWv. SendInsBy key_agWu Timer f_agWv => DiffTime -> f_agWv ()
+ Data.Effect.Concurrent.Timer: sleep'' :: forall {k} (key :: k) f. SendFOEBy key Timer f => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: type LCyclicTimer = LiftIns CyclicTimer
+ Data.Effect.Concurrent.Timer: type LCyclicTimer = LiftFOE CyclicTimer
- Data.Effect.Concurrent.Timer: type LTimer = LiftIns Timer
+ Data.Effect.Concurrent.Timer: type LTimer = LiftFOE Timer
- Data.Effect.Concurrent.Timer: wait :: forall f_ahke. SendIns CyclicTimer f_ahke => DiffTime -> f_ahke ()
+ Data.Effect.Concurrent.Timer: wait :: SendFOE CyclicTimer f => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: wait' :: forall tag_ahkg f_ahkh. SendIns (Tag CyclicTimer tag_ahkg) f_ahkh => DiffTime -> f_ahkh ()
+ Data.Effect.Concurrent.Timer: wait' :: forall {k} (tag :: k) f. SendFOE (Tag CyclicTimer tag) f => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: wait'' :: forall key_ahkj f_ahkk. SendInsBy key_ahkj CyclicTimer f_ahkk => DiffTime -> f_ahkk ()
+ Data.Effect.Concurrent.Timer: wait'' :: forall {k} (key :: k) f. SendFOEBy key CyclicTimer f => DiffTime -> f ()
- Data.Effect.Cont: [CallCC] :: (forall r. (a -> m r) -> m a) -> CallCC m a
+ Data.Effect.Cont: [CallCC] :: forall a (m :: Type -> Type). (forall r. () => (a -> m r) -> m a) -> CallCC m a
- Data.Effect.Cont: callCC :: forall (a_agMl :: Type) m_agMm. SendSig CallCC m_agMm => (forall (r_agMn :: Type). (a_agMl -> m_agMm r_agMn) -> m_agMm a_agMl) -> m_agMm a_agMl
+ Data.Effect.Cont: callCC :: forall a m. SendHOE CallCC m => (forall r. () => (a -> m r) -> m a) -> m a
- Data.Effect.Cont: callCC' :: forall tag_agNJ (a_agMl :: Type) m_agMm. SendSig (TagH CallCC tag_agNJ) m_agMm => (forall (r_agMn :: Type). (a_agMl -> m_agMm r_agMn) -> m_agMm a_agMl) -> m_agMm a_agMl
+ Data.Effect.Cont: callCC' :: forall {k} (tag :: k) a m. SendHOE (TagH CallCC tag) m => (forall r. () => (a -> m r) -> m a) -> m a
- Data.Effect.Cont: callCC'' :: forall key_agNL (a_agMl :: Type) m_agMm. SendSigBy key_agNL CallCC m_agMm => (forall (r_agMn :: Type). (a_agMl -> m_agMm r_agMn) -> m_agMm a_agMl) -> m_agMm a_agMl
+ Data.Effect.Cont: callCC'' :: forall {k} (key :: k) a m. SendHOEBy key CallCC m => (forall r. () => (a -> m r) -> m a) -> m a
- Data.Effect.Cont: data CallCC m a
+ Data.Effect.Cont: data CallCC (m :: Type -> Type) a
- Data.Effect.Coroutine: Done :: r -> Status f a b r
+ Data.Effect.Coroutine: Done :: r -> Status (f :: Type -> Type) a b r
- Data.Effect.Coroutine: [Yield] :: a -> Yield a b b
+ Data.Effect.Coroutine: [Yield] :: forall a b. a -> Yield a b b
- Data.Effect.Coroutine: data Status f a b r
+ Data.Effect.Coroutine: data Status (f :: Type -> Type) a b r
- Data.Effect.Coroutine: data Yield a b (c :: Type)
+ Data.Effect.Coroutine: data Yield a b c
- Data.Effect.Coroutine: type LYield a_age8 b_age9 = LiftIns (Yield a_age8 b_age9)
+ Data.Effect.Coroutine: type LYield a b = LiftFOE Yield a b
- Data.Effect.Coroutine: yield :: forall (a_ageb :: Type) (b_agec :: Type) f_ageP. SendIns (Yield a_ageb b_agec) f_ageP => a_ageb -> f_ageP b_agec
+ Data.Effect.Coroutine: yield :: SendFOE (Yield a b) f => a -> f b
- Data.Effect.Coroutine: yield' :: forall tag_ageR (a_ageb :: Type) (b_agec :: Type) f_ageS. SendIns (Tag (Yield a_ageb b_agec) tag_ageR) f_ageS => a_ageb -> f_ageS b_agec
+ Data.Effect.Coroutine: yield' :: forall {k} (tag :: k) a b f. SendFOE (Tag (Yield a b) tag) f => a -> f b
- Data.Effect.Coroutine: yield'' :: forall key_ageU (a_ageb :: Type) (b_agec :: Type) f_ageV. SendInsBy key_ageU (Yield a_ageb b_agec) f_ageV => a_ageb -> f_ageV b_agec
+ Data.Effect.Coroutine: yield'' :: forall {k} (key :: k) a b f. SendFOEBy key (Yield a b) f => a -> f b
- Data.Effect.Except: [Catch] :: f a -> (e -> f a) -> Catch e f a
+ Data.Effect.Except: [Catch] :: forall (f :: Type -> Type) a e. f a -> (e -> f a) -> Catch e f a
- Data.Effect.Except: [Throw] :: e -> Throw e a
+ Data.Effect.Except: [Throw] :: forall e a. e -> Throw e a
- Data.Effect.Except: catch :: forall (a_af3s :: Type) (e_af3t :: Type) f_af3r. SendSig (Catch e_af3t) f_af3r => f_af3r a_af3s -> (e_af3t -> f_af3r a_af3s) -> f_af3r a_af3s
+ Data.Effect.Except: catch :: forall a e f. SendHOE (Catch e) f => f a -> (e -> f a) -> f a
- Data.Effect.Except: catch' :: forall tag_af57 (a_af3s :: Type) (e_af3t :: Type) f_af3r. SendSig (TagH (Catch e_af3t) tag_af57) f_af3r => f_af3r a_af3s -> (e_af3t -> f_af3r a_af3s) -> f_af3r a_af3s
+ Data.Effect.Except: catch' :: forall {k} (tag :: k) a e f. SendHOE (TagH (Catch e) tag) f => f a -> (e -> f a) -> f a
- Data.Effect.Except: catch'' :: forall key_af5a (a_af3s :: Type) (e_af3t :: Type) f_af3r. SendSigBy key_af5a (Catch e_af3t) f_af3r => f_af3r a_af3s -> (e_af3t -> f_af3r a_af3s) -> f_af3r a_af3s
+ Data.Effect.Except: catch'' :: forall {k} (key :: k) a e f. SendHOEBy key (Catch e) f => f a -> (e -> f a) -> f a
- Data.Effect.Except: data Catch e f (a :: Type)
+ Data.Effect.Except: data Catch e (f :: Type -> Type) a
- Data.Effect.Except: data Throw e (a :: Type)
+ Data.Effect.Except: data Throw e a
- Data.Effect.Except: onExcept :: forall e f a. (Catch e <<: f, Throw e <: f, Applicative f) => f a -> f () -> f a
+ Data.Effect.Except: onExcept :: (Catch e <<: f, Throw e <: f, Applicative f) => f a -> f () -> f a
- Data.Effect.Except: throw :: forall (e_af3w :: Type) (a_af3x :: Type) f_af4R. SendIns (Throw e_af3w) f_af4R => e_af3w -> f_af4R a_af3x
+ Data.Effect.Except: throw :: forall e a f. SendFOE (Throw e) f => e -> f a
- Data.Effect.Except: throw' :: forall tag_af4T (e_af3w :: Type) (a_af3x :: Type) f_af4U. SendIns (Tag (Throw e_af3w) tag_af4T) f_af4U => e_af3w -> f_af4U a_af3x
+ Data.Effect.Except: throw' :: forall {k} (tag :: k) e a f. SendFOE (Tag (Throw e) tag) f => e -> f a
- Data.Effect.Except: throw'' :: forall key_af4W (e_af3w :: Type) (a_af3x :: Type) f_af4X. SendInsBy key_af4W (Throw e_af3w) f_af4X => e_af3w -> f_af4X a_af3x
+ Data.Effect.Except: throw'' :: forall {k} (key :: k) e a f. SendFOEBy key (Throw e) f => e -> f a
- Data.Effect.Except: type LThrow e_af3u = LiftIns (Throw e_af3u)
+ Data.Effect.Except: type LThrow e = LiftFOE Throw e
- Data.Effect.Fail: [Fail] :: String -> Fail a
+ Data.Effect.Fail: [Fail] :: forall a. String -> Fail a
- Data.Effect.Fail: data Fail (a :: Type)
+ Data.Effect.Fail: data Fail a
- Data.Effect.Fail: fail :: forall (a_aeUe :: Type) f_aeUI. SendIns Fail f_aeUI => String -> f_aeUI a_aeUe
+ Data.Effect.Fail: fail :: forall a f. SendFOE Fail f => String -> f a
- Data.Effect.Fail: fail' :: forall tag_aeUK (a_aeUe :: Type) f_aeUL. SendIns (Tag Fail tag_aeUK) f_aeUL => String -> f_aeUL a_aeUe
+ Data.Effect.Fail: fail' :: forall {k} (tag :: k) a f. SendFOE (Tag Fail tag) f => String -> f a
- Data.Effect.Fail: fail'' :: forall key_aeUN (a_aeUe :: Type) f_aeUO. SendInsBy key_aeUN Fail f_aeUO => String -> f_aeUO a_aeUe
+ Data.Effect.Fail: fail'' :: forall {k} (key :: k) a f. SendFOEBy key Fail f => String -> f a
- Data.Effect.Fail: pattern LFail :: () => (a_aeUS ~ a_aeUe, ()) => String -> LiftIns Fail f_aeUR a_aeUS
+ Data.Effect.Fail: pattern LFail :: forall a f a1. () => (a ~ a1, ()) => String -> LiftFOE Fail f a
- Data.Effect.Fail: type LFail = LiftIns Fail
+ Data.Effect.Fail: type LFail = LiftFOE Fail
- Data.Effect.Fix: [Mfix] :: (a -> f a) -> Fix f a
+ Data.Effect.Fix: [Mfix] :: forall a (f :: Type -> Type). (a -> f a) -> Fix f a
- Data.Effect.Fix: data Fix f a
+ Data.Effect.Fix: data Fix (f :: Type -> Type) a
- Data.Effect.Fix: mfix :: forall (a_aeKZ :: Type) f_aeL0. SendSig Fix f_aeL0 => (a_aeKZ -> f_aeL0 a_aeKZ) -> f_aeL0 a_aeKZ
+ Data.Effect.Fix: mfix :: forall a f. SendHOE Fix f => (a -> f a) -> f a
- Data.Effect.Fix: mfix' :: forall tag_aeLI (a_aeKZ :: Type) f_aeL0. SendSig (TagH Fix tag_aeLI) f_aeL0 => (a_aeKZ -> f_aeL0 a_aeKZ) -> f_aeL0 a_aeKZ
+ Data.Effect.Fix: mfix' :: forall {k} (tag :: k) a f. SendHOE (TagH Fix tag) f => (a -> f a) -> f a
- Data.Effect.Fix: mfix'' :: forall key_aeLK (a_aeKZ :: Type) f_aeL0. SendSigBy key_aeLK Fix f_aeL0 => (a_aeKZ -> f_aeL0 a_aeKZ) -> f_aeL0 a_aeKZ
+ Data.Effect.Fix: mfix'' :: forall {k} (key :: k) a f. SendHOEBy key Fix f => (a -> f a) -> f a
- Data.Effect.Fresh: [Fresh] :: Fresh i i
+ Data.Effect.Fresh: [Fresh] :: forall i. Fresh i i
- Data.Effect.Fresh: data Fresh i (a :: Type)
+ Data.Effect.Fresh: data Fresh i a
- Data.Effect.Fresh: fresh :: forall (i_aeDd :: Type) f_aeDG. SendIns (Fresh i_aeDd) f_aeDG => f_aeDG i_aeDd
+ Data.Effect.Fresh: fresh :: SendFOE (Fresh i) f => f i
- Data.Effect.Fresh: fresh' :: forall tag_aeDH (i_aeDd :: Type) f_aeDI. SendIns (Tag (Fresh i_aeDd) tag_aeDH) f_aeDI => f_aeDI i_aeDd
+ Data.Effect.Fresh: fresh' :: forall {k} (tag :: k) i f. SendFOE (Tag (Fresh i) tag) f => f i
- Data.Effect.Fresh: fresh'' :: forall key_aeDJ (i_aeDd :: Type) f_aeDK. SendInsBy key_aeDJ (Fresh i_aeDd) f_aeDK => f_aeDK i_aeDd
+ Data.Effect.Fresh: fresh'' :: forall {k} (key :: k) i f. SendFOEBy key (Fresh i) f => f i
- Data.Effect.Fresh: type LFresh i_aeDb = LiftIns (Fresh i_aeDb)
+ Data.Effect.Fresh: type LFresh i = LiftFOE Fresh i
- Data.Effect.Input: [Input] :: Input i i
+ Data.Effect.Input: [Input] :: forall i. Input i i
- Data.Effect.Input: data Input i (a :: Type)
+ Data.Effect.Input: data Input i a
- Data.Effect.Input: input :: forall (i_aetS :: Type) f_aeul. SendIns (Input i_aetS) f_aeul => f_aeul i_aetS
+ Data.Effect.Input: input :: SendFOE (Input i) f => f i
- Data.Effect.Input: input' :: forall tag_aeum (i_aetS :: Type) f_aeun. SendIns (Tag (Input i_aetS) tag_aeum) f_aeun => f_aeun i_aetS
+ Data.Effect.Input: input' :: forall {k} (tag :: k) i f. SendFOE (Tag (Input i) tag) f => f i
- Data.Effect.Input: input'' :: forall key_aeuo (i_aetS :: Type) f_aeup. SendInsBy key_aeuo (Input i_aetS) f_aeup => f_aeup i_aetS
+ Data.Effect.Input: input'' :: forall {k} (key :: k) i f. SendFOEBy key (Input i) f => f i
- Data.Effect.Input: type LInput i_aetQ = LiftIns (Input i_aetQ)
+ Data.Effect.Input: type LInput i = LiftFOE Input i
- Data.Effect.KVStore: [LookupKV] :: k -> KVStore k v (Maybe v)
+ Data.Effect.KVStore: [LookupKV] :: forall k v. k -> KVStore k v (Maybe v)
- Data.Effect.KVStore: [UpdateKV] :: k -> Maybe v -> KVStore k v ()
+ Data.Effect.KVStore: [UpdateKV] :: forall k v. k -> Maybe v -> KVStore k v ()
- Data.Effect.KVStore: lookupKV :: forall (k_afE2 :: Type) (v_afE3 :: Type) f_afFr. SendIns (KVStore k_afE2 v_afE3) f_afFr => k_afE2 -> f_afFr (Maybe v_afE3)
+ Data.Effect.KVStore: lookupKV :: SendFOE (KVStore k v) f => k -> f (Maybe v)
- Data.Effect.KVStore: lookupKV' :: forall tag_afFt (k_afE2 :: Type) (v_afE3 :: Type) f_afFu. SendIns (Tag (KVStore k_afE2 v_afE3) tag_afFt) f_afFu => k_afE2 -> f_afFu (Maybe v_afE3)
+ Data.Effect.KVStore: lookupKV' :: forall {k1} (tag :: k1) k2 v f. SendFOE (Tag (KVStore k2 v) tag) f => k2 -> f (Maybe v)
- Data.Effect.KVStore: lookupKV'' :: forall key_afFw (k_afE2 :: Type) (v_afE3 :: Type) f_afFx. SendInsBy key_afFw (KVStore k_afE2 v_afE3) f_afFx => k_afE2 -> f_afFx (Maybe v_afE3)
+ Data.Effect.KVStore: lookupKV'' :: forall {k1} (key :: k1) k2 v f. SendFOEBy key (KVStore k2 v) f => k2 -> f (Maybe v)
- Data.Effect.KVStore: type LKVStore k_afDZ v_afE0 = LiftIns (KVStore k_afDZ v_afE0)
+ Data.Effect.KVStore: type LKVStore k v = LiftFOE KVStore k v
- Data.Effect.KVStore: updateKV :: forall (k_afEq :: Type) (v_afEr :: Type) f_afFz. SendIns (KVStore k_afEq v_afEr) f_afFz => k_afEq -> Maybe v_afEr -> f_afFz ()
+ Data.Effect.KVStore: updateKV :: SendFOE (KVStore k v) f => k -> Maybe v -> f ()
- Data.Effect.KVStore: updateKV' :: forall tag_afFC (k_afEq :: Type) (v_afEr :: Type) f_afFD. SendIns (Tag (KVStore k_afEq v_afEr) tag_afFC) f_afFD => k_afEq -> Maybe v_afEr -> f_afFD ()
+ Data.Effect.KVStore: updateKV' :: forall {k1} (tag :: k1) k2 v f. SendFOE (Tag (KVStore k2 v) tag) f => k2 -> Maybe v -> f ()
- Data.Effect.KVStore: updateKV'' :: forall key_afFG (k_afEq :: Type) (v_afEr :: Type) f_afFH. SendInsBy key_afFG (KVStore k_afEq v_afEr) f_afFH => k_afEq -> Maybe v_afEr -> f_afFH ()
+ Data.Effect.KVStore: updateKV'' :: forall {k1} (key :: k1) k2 v f. SendFOEBy key (KVStore k2 v) f => k2 -> Maybe v -> f ()
- Data.Effect.NonDet: [ChooseH] :: f a -> f a -> ChooseH f a
+ Data.Effect.NonDet: [ChooseH] :: forall (f :: Type -> Type) a. f a -> f a -> ChooseH f a
- Data.Effect.NonDet: [Empty] :: Empty a
+ Data.Effect.NonDet: [Empty] :: forall a. Empty a
- Data.Effect.NonDet: choose :: forall f_aebc. SendIns Choose f_aebc => f_aebc Bool
+ Data.Effect.NonDet: choose :: SendFOE Choose f => f Bool
- Data.Effect.NonDet: choose' :: forall tag_aebd f_aebe. SendIns (Tag Choose tag_aebd) f_aebe => f_aebe Bool
+ Data.Effect.NonDet: choose' :: forall {k} (tag :: k) f. SendFOE (Tag Choose tag) f => f Bool
- Data.Effect.NonDet: choose'' :: forall key_aebf f_aebg. SendInsBy key_aebf Choose f_aebg => f_aebg Bool
+ Data.Effect.NonDet: choose'' :: forall {k} (key :: k) f. SendFOEBy key Choose f => f Bool
- Data.Effect.NonDet: chooseH :: forall (a_aebt :: Type) f_aebs. SendSig ChooseH f_aebs => f_aebs a_aebt -> f_aebs a_aebt -> f_aebs a_aebt
+ Data.Effect.NonDet: chooseH :: forall a f. SendHOE ChooseH f => f a -> f a -> f a
- Data.Effect.NonDet: chooseH' :: forall tag_aeeL (a_aebt :: Type) f_aebs. SendSig (TagH ChooseH tag_aeeL) f_aebs => f_aebs a_aebt -> f_aebs a_aebt -> f_aebs a_aebt
+ Data.Effect.NonDet: chooseH' :: forall {k} (tag :: k) a f. SendHOE (TagH ChooseH tag) f => f a -> f a -> f a
- Data.Effect.NonDet: chooseH'' :: forall key_aeeO (a_aebt :: Type) f_aebs. SendSigBy key_aeeO ChooseH f_aebs => f_aebs a_aebt -> f_aebs a_aebt -> f_aebs a_aebt
+ Data.Effect.NonDet: chooseH'' :: forall {k} (key :: k) a f. SendHOEBy key ChooseH f => f a -> f a -> f a
- Data.Effect.NonDet: data Choose (a :: Type)
+ Data.Effect.NonDet: data Choose a
- Data.Effect.NonDet: data ChooseH f (a :: Type)
+ Data.Effect.NonDet: data ChooseH (f :: Type -> Type) a
- Data.Effect.NonDet: data Empty (a :: Type)
+ Data.Effect.NonDet: data Empty a
- Data.Effect.NonDet: empty :: forall (a_ae7f :: Type) f_ae7H. SendIns Empty f_ae7H => f_ae7H a_ae7f
+ Data.Effect.NonDet: empty :: forall a f. SendFOE Empty f => f a
- Data.Effect.NonDet: empty' :: forall tag_ae7I (a_ae7f :: Type) f_ae7J. SendIns (Tag Empty tag_ae7I) f_ae7J => f_ae7J a_ae7f
+ Data.Effect.NonDet: empty' :: forall {k} (tag :: k) a f. SendFOE (Tag Empty tag) f => f a
- Data.Effect.NonDet: empty'' :: forall key_ae7K (a_ae7f :: Type) f_ae7L. SendInsBy key_ae7K Empty f_ae7L => f_ae7L a_ae7f
+ Data.Effect.NonDet: empty'' :: forall {k} (key :: k) a f. SendFOEBy key Empty f => f a
- Data.Effect.NonDet: type LChoose = LiftIns Choose
+ Data.Effect.NonDet: type LChoose = LiftFOE Choose
- Data.Effect.NonDet: type LEmpty = LiftIns Empty
+ Data.Effect.NonDet: type LEmpty = LiftFOE Empty
- Data.Effect.Output: [Output] :: o -> Output o ()
+ Data.Effect.Output: [Output] :: forall o. o -> Output o ()
- Data.Effect.Output: output :: forall (o_adWX :: Type) f_adXs. SendIns (Output o_adWX) f_adXs => o_adWX -> f_adXs ()
+ Data.Effect.Output: output :: SendFOE (Output o) f => o -> f ()
- Data.Effect.Output: output' :: forall tag_adXu (o_adWX :: Type) f_adXv. SendIns (Tag (Output o_adWX) tag_adXu) f_adXv => o_adWX -> f_adXv ()
+ Data.Effect.Output: output' :: forall {k} (tag :: k) o f. SendFOE (Tag (Output o) tag) f => o -> f ()
- Data.Effect.Output: output'' :: forall key_adXx (o_adWX :: Type) f_adXy. SendInsBy key_adXx (Output o_adWX) f_adXy => o_adWX -> f_adXy ()
+ Data.Effect.Output: output'' :: forall {k} (key :: k) o f. SendFOEBy key (Output o) f => o -> f ()
- Data.Effect.Output: type LOutput o_adWV = LiftIns (Output o_adWV)
+ Data.Effect.Output: type LOutput o = LiftFOE Output o
- Data.Effect.Provider: [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.Effect.Provider: [Provide] :: forall i (f :: Type -> Type) (b :: Type -> Type) a1 (ctx :: Type -> Type). i -> ((forall x. () => f x -> b x) -> b a1) -> Provider' ctx i b f (ctx a1)
- Data.Effect.Provider: data Provider' c i ctx e (f :: Type -> Type) (a :: Type)
+ Data.Effect.Provider: data Provider' (ctx :: Type -> Type) i (b :: Type -> Type) (f :: Type -> Type) a
- Data.Effect.Provider: data ProviderKey
+ Data.Effect.Provider: data ProviderKey (ctx :: k) (i :: k1)
- Data.Effect.Provider: provide :: forall (i_adB6 :: Type) (c_adB7 :: (Type -> Type) -> Constraint) (e_adB8 :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adBb :: Type -> Type) f_adB9. SendSigBy ProviderKey (Provider' c_adB7 i_adB6 ctx_adBb e_adB8) f_adB9 => i_adB6 -> (forall (g_adBc :: Type -> Type). (c_adB7 g_adBc, e_adB8 g_adBc) => (forall (x_adBd :: Type). f_adB9 x_adBd -> g_adBc x_adBd) -> g_adBc a_X0) -> f_adB9 (ctx_adBb a_X0)
+ Data.Effect.Provider: provide :: forall i b a ctx f. SendHOE (Provider' ctx i b) f => i -> ((forall x. () => f x -> b x) -> b a) -> f (ctx a)
- Data.Effect.Provider: provide' :: forall tag_adDl (i_adB6 :: Type) (c_adB7 :: (Type -> Type) -> Constraint) (e_adB8 :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adBb :: Type -> Type) f_adB9. SendSig (TagH (Provider' c_adB7 i_adB6 ctx_adBb e_adB8) tag_adDl) f_adB9 => i_adB6 -> (forall (g_adBc :: Type -> Type). (c_adB7 g_adBc, e_adB8 g_adBc) => (forall (x_adBd :: Type). f_adB9 x_adBd -> g_adBc x_adBd) -> g_adBc a_X0) -> f_adB9 (ctx_adBb a_X0)
+ Data.Effect.Provider: provide' :: forall {k} (tag :: k) i b a ctx f. SendHOE (TagH (Provider' ctx i b) tag) f => i -> ((forall x. () => f x -> b x) -> b a) -> f (ctx a)
- Data.Effect.Provider: provide'' :: forall key_adDo (i_adB6 :: Type) (c_adB7 :: (Type -> Type) -> Constraint) (e_adB8 :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adBb :: Type -> Type) f_adB9. SendSigBy key_adDo (Provider' c_adB7 i_adB6 ctx_adBb e_adB8) f_adB9 => i_adB6 -> (forall (g_adBc :: Type -> Type). (c_adB7 g_adBc, e_adB8 g_adBc) => (forall (x_adBd :: Type). f_adB9 x_adBd -> g_adBc x_adBd) -> g_adBc a_X0) -> f_adB9 (ctx_adBb a_X0)
+ Data.Effect.Provider: provide'' :: forall {k} (key :: k) i b a ctx f. SendHOEBy key (Provider' ctx i b) f => i -> ((forall x. () => f x -> b x) -> b a) -> f (ctx a)
- Data.Effect.Provider: type Provider c_adB0 i_adB1 ctx_adB2 e_adB3 = (##>) ProviderKey (Provider' c_adB0 i_adB1 ctx_adB2 e_adB3)
+ Data.Effect.Provider: type Provider (ctx :: Type -> Type) i (b :: Type -> Type) = ProviderKey ctx i ##> Provider' ctx i b
- Data.Effect.Reader: [Ask] :: Ask r r
+ Data.Effect.Reader: [Ask] :: forall r. Ask r r
- Data.Effect.Reader: [Local] :: (r -> r) -> f a -> Local r f a
+ Data.Effect.Reader: [Local] :: forall r (f :: Type -> Type) a. (r -> r) -> f a -> Local r f a
- Data.Effect.Reader: ask :: forall (r_acXZ :: Type) f_acZ9. SendIns (Ask r_acXZ) f_acZ9 => f_acZ9 r_acXZ
+ Data.Effect.Reader: ask :: SendFOE (Ask r) f => f r
- Data.Effect.Reader: ask' :: forall tag_acZa (r_acXZ :: Type) f_acZb. SendIns (Tag (Ask r_acXZ) tag_acZa) f_acZb => f_acZb r_acXZ
+ Data.Effect.Reader: ask' :: forall {k} (tag :: k) r f. SendFOE (Tag (Ask r) tag) f => f r
- Data.Effect.Reader: ask'' :: forall key_acZc (r_acXZ :: Type) f_acZd. SendInsBy key_acZc (Ask r_acXZ) f_acZd => f_acZd r_acXZ
+ Data.Effect.Reader: ask'' :: forall {k} (key :: k) r f. SendFOEBy key (Ask r) f => f r
- Data.Effect.Reader: data Ask r (a :: Type)
+ Data.Effect.Reader: data Ask r a
- Data.Effect.Reader: data Local r f (a :: Type)
+ Data.Effect.Reader: data Local r (f :: Type -> Type) a
- Data.Effect.Reader: local :: forall (r_acXU :: Type) (a_acXW :: Type) f_acXV. SendSig (Local r_acXU) f_acXV => (r_acXU -> r_acXU) -> f_acXV a_acXW -> f_acXV a_acXW
+ Data.Effect.Reader: local :: forall r a f. SendHOE (Local r) f => (r -> r) -> f a -> f a
- Data.Effect.Reader: local' :: forall tag_acZl (r_acXU :: Type) (a_acXW :: Type) f_acXV. SendSig (TagH (Local r_acXU) tag_acZl) f_acXV => (r_acXU -> r_acXU) -> f_acXV a_acXW -> f_acXV a_acXW
+ Data.Effect.Reader: local' :: forall {k} (tag :: k) r a f. SendHOE (TagH (Local r) tag) f => (r -> r) -> f a -> f a
- Data.Effect.Reader: local'' :: forall key_acZo (r_acXU :: Type) (a_acXW :: Type) f_acXV. SendSigBy key_acZo (Local r_acXU) f_acXV => (r_acXU -> r_acXU) -> f_acXV a_acXW -> f_acXV a_acXW
+ Data.Effect.Reader: local'' :: forall {k} (key :: k) r a f. SendHOEBy key (Local r) f => (r -> r) -> f a -> f a
- Data.Effect.Reader: type LAsk r_acXX = LiftIns (Ask r_acXX)
+ Data.Effect.Reader: type LAsk r = LiftFOE Ask r
- Data.Effect.Resource: [BracketOnExcept] :: f a -> (a -> f ()) -> (a -> f b) -> Resource f b
+ Data.Effect.Resource: [BracketOnExcept] :: forall (f :: Type -> Type) a1 a. f a1 -> (a1 -> f ()) -> (a1 -> f a) -> Resource f a
- Data.Effect.Resource: [Bracket] :: f a -> (a -> f ()) -> (a -> f b) -> Resource f b
+ Data.Effect.Resource: [Bracket] :: forall (f :: Type -> Type) a1 a. f a1 -> (a1 -> f ()) -> (a1 -> f a) -> Resource f a
- Data.Effect.Resource: bracket :: forall (a_X0 :: Type) (b_acl3 :: Type) f_acl1. SendSig Resource f_acl1 => f_acl1 a_X0 -> (a_X0 -> f_acl1 ()) -> (a_X0 -> f_acl1 b_acl3) -> f_acl1 b_acl3
+ Data.Effect.Resource: bracket :: forall a b f. SendHOE Resource f => f a -> (a -> f ()) -> (a -> f b) -> f b
- Data.Effect.Resource: bracket' :: forall tag_acmJ (a_X0 :: Type) (b_acl3 :: Type) f_acl1. SendSig (TagH Resource tag_acmJ) f_acl1 => f_acl1 a_X0 -> (a_X0 -> f_acl1 ()) -> (a_X0 -> f_acl1 b_acl3) -> f_acl1 b_acl3
+ Data.Effect.Resource: bracket' :: forall {k} (tag :: k) a b f. SendHOE (TagH Resource tag) f => f a -> (a -> f ()) -> (a -> f b) -> f b
- Data.Effect.Resource: bracket'' :: forall key_acmN (a_X0 :: Type) (b_acl3 :: Type) f_acl1. SendSigBy key_acmN Resource f_acl1 => f_acl1 a_X0 -> (a_X0 -> f_acl1 ()) -> (a_X0 -> f_acl1 b_acl3) -> f_acl1 b_acl3
+ Data.Effect.Resource: bracket'' :: forall {k} (key :: k) a b f. SendHOEBy key Resource f => f a -> (a -> f ()) -> (a -> f b) -> f b
- Data.Effect.Resource: bracketOnExcept :: forall (a_X0 :: Type) (b_acl6 :: Type) f_acl4. SendSig Resource f_acl4 => f_acl4 a_X0 -> (a_X0 -> f_acl4 ()) -> (a_X0 -> f_acl4 b_acl6) -> f_acl4 b_acl6
+ Data.Effect.Resource: bracketOnExcept :: forall a b f. SendHOE Resource f => f a -> (a -> f ()) -> (a -> f b) -> f b
- Data.Effect.Resource: bracketOnExcept' :: forall tag_acmU (a_X0 :: Type) (b_acl6 :: Type) f_acl4. SendSig (TagH Resource tag_acmU) f_acl4 => f_acl4 a_X0 -> (a_X0 -> f_acl4 ()) -> (a_X0 -> f_acl4 b_acl6) -> f_acl4 b_acl6
+ Data.Effect.Resource: bracketOnExcept' :: forall {k} (tag :: k) a b f. SendHOE (TagH Resource tag) f => f a -> (a -> f ()) -> (a -> f b) -> f b
- Data.Effect.Resource: bracketOnExcept'' :: forall key_acmY (a_X0 :: Type) (b_acl6 :: Type) f_acl4. SendSigBy key_acmY Resource f_acl4 => f_acl4 a_X0 -> (a_X0 -> f_acl4 ()) -> (a_X0 -> f_acl4 b_acl6) -> f_acl4 b_acl6
+ Data.Effect.Resource: bracketOnExcept'' :: forall {k} (key :: k) a b f. SendHOEBy key Resource f => f a -> (a -> f ()) -> (a -> f b) -> f b
- Data.Effect.Resource: data Resource f a
+ Data.Effect.Resource: data Resource (f :: Type -> Type) a
- Data.Effect.ShiftReset: [Reset] :: m a -> Reset m a
+ Data.Effect.ShiftReset: [Reset] :: forall (m :: Type -> Type) a. m a -> Reset m a
- Data.Effect.ShiftReset: [Shift] :: forall r m a. ((a -> m r) -> m r) -> Shift' r m a
+ Data.Effect.ShiftReset: [Shift] :: forall r (b :: Type -> Type) (m :: Type -> Type) a. ((a -> b r) -> (forall x. () => m x -> b x) -> b r) -> Shift' r b m a
- Data.Effect.ShiftReset: callCC :: forall r m a. (SendSigBy ShiftKey (Shift' r) m, Monad m) => ((a -> m r) -> m a) -> m a
+ Data.Effect.ShiftReset: callCC :: (SendHOEBy ShiftKey (Shift' r b) m, Monad m, Monad b) => ((a -> b r) -> m a) -> m a
- Data.Effect.ShiftReset: data Reset m (a :: Type)
+ Data.Effect.ShiftReset: data Reset (m :: Type -> Type) a
- Data.Effect.ShiftReset: data Shift' (r :: Type) m a
+ Data.Effect.ShiftReset: data Shift' r (b :: Type -> Type) (m :: Type -> Type) a
- Data.Effect.ShiftReset: exit :: (SendSigBy ShiftKey (Shift' r) f, Applicative f) => r -> f a
+ Data.Effect.ShiftReset: exit :: forall r (b :: Type -> Type) m a. (SendHOEBy ShiftKey (Shift' r b) m, Applicative b) => r -> m a
- Data.Effect.ShiftReset: getCC :: (SendSigBy ShiftKey (Shift' r) m, Monad m) => m (m r)
+ Data.Effect.ShiftReset: getCC :: (SendHOEBy ShiftKey (Shift' r b) m, Monad m, Monad b) => m (b r)
- Data.Effect.ShiftReset: getCC_ :: (Shift_ <<: m, Monad m) => m (m ())
+ Data.Effect.ShiftReset: getCC_ :: (SendHOEBy Shift_Key (Shift_' b) m, Functor b) => m (b ())
- Data.Effect.ShiftReset: reset :: forall (a_abTC :: Type) m_abTB. SendSig Reset m_abTB => m_abTB a_abTC -> m_abTB a_abTC
+ Data.Effect.ShiftReset: reset :: forall a m. SendHOE Reset m => m a -> m a
- Data.Effect.ShiftReset: reset' :: forall tag_abXO (a_abTC :: Type) m_abTB. SendSig (TagH Reset tag_abXO) m_abTB => m_abTB a_abTC -> m_abTB a_abTC
+ Data.Effect.ShiftReset: reset' :: forall {k} (tag :: k) a m. SendHOE (TagH Reset tag) m => m a -> m a
- Data.Effect.ShiftReset: reset'' :: forall key_abXQ (a_abTC :: Type) m_abTB. SendSigBy key_abXQ Reset m_abTB => m_abTB a_abTC -> m_abTB a_abTC
+ Data.Effect.ShiftReset: reset'' :: forall {k} (key :: k) a m. SendHOEBy key Reset m => m a -> m a
- Data.Effect.ShiftReset: shift :: forall (r_abIW :: Type) (a_abIY :: Type) m_abIX. SendSigBy ShiftKey (Shift' r_abIW) m_abIX => ((a_abIY -> m_abIX r_abIW) -> m_abIX r_abIW) -> m_abIX a_abIY
+ Data.Effect.ShiftReset: shift :: forall r b a m. SendHOEBy ShiftKey (Shift' r b) m => ((a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
- Data.Effect.ShiftReset: shift' :: forall tag_abKh (r_abIW :: Type) (a_abIY :: Type) m_abIX. SendSig (TagH (Shift' r_abIW) tag_abKh) m_abIX => ((a_abIY -> m_abIX r_abIW) -> m_abIX r_abIW) -> m_abIX a_abIY
+ Data.Effect.ShiftReset: shift' :: forall {k} (tag :: k) r b a m. SendHOE (TagH (Shift' r b) tag) m => ((a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
- Data.Effect.ShiftReset: shift'' :: forall key_abKj (r_abIW :: Type) (a_abIY :: Type) m_abIX. SendSigBy key_abKj (Shift' r_abIW) m_abIX => ((a_abIY -> m_abIX r_abIW) -> m_abIX r_abIW) -> m_abIX a_abIY
+ Data.Effect.ShiftReset: shift'' :: forall {k} (key :: k) r b a m. SendHOEBy key (Shift' r b) m => ((a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
- Data.Effect.ShiftReset: shift'_ :: forall (r_abIW :: Type) (a_abIY :: Type) m_abIX. SendSig (Shift' r_abIW) m_abIX => ((a_abIY -> m_abIX r_abIW) -> m_abIX r_abIW) -> m_abIX a_abIY
+ Data.Effect.ShiftReset: shift'_ :: forall r b a m. SendHOE (Shift' r b) m => ((a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
- Data.Effect.ShiftReset: shift_' :: forall tag_abTp (a_abKy :: Type) m_abKz. SendSig (TagH Shift_ tag_abTp) m_abKz => (forall (r_abKA :: Type). (a_abKy -> m_abKz r_abKA) -> m_abKz r_abKA) -> m_abKz a_abKy
+ Data.Effect.ShiftReset: shift_' :: forall a b m. SendHOEBy Shift_Key (Shift_' b) m => (forall r. () => (a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
- Data.Effect.ShiftReset: shift_'' :: forall key_abTr (a_abKy :: Type) m_abKz. SendSigBy key_abTr Shift_ m_abKz => (forall (r_abKA :: Type). (a_abKy -> m_abKz r_abKA) -> m_abKz r_abKA) -> m_abKz a_abKy
+ Data.Effect.ShiftReset: shift_'' :: forall {k} (tag :: k) a b m. SendHOE (TagH (Shift_' b) tag) m => (forall r. () => (a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
- Data.Effect.ShiftReset: type Shift r_abIT = (##>) ShiftKey (Shift' r_abIT)
+ Data.Effect.ShiftReset: type Shift r (b :: Type -> Type) = ShiftKey ##> Shift' r b
- Data.Effect.State: [Get] :: State s s
+ Data.Effect.State: [Get] :: forall s. State s s
- Data.Effect.State: [Put] :: s -> State s ()
+ Data.Effect.State: [Put] :: forall s. s -> State s ()
- Data.Effect.State: get :: forall (s_abmq :: Type) f_abn8. SendIns (State s_abmq) f_abn8 => f_abn8 s_abmq
+ Data.Effect.State: get :: SendFOE (State s) f => f s
- Data.Effect.State: get' :: forall tag_abn9 (s_abmq :: Type) f_abna. SendIns (Tag (State s_abmq) tag_abn9) f_abna => f_abna s_abmq
+ Data.Effect.State: get' :: forall {k} (tag :: k) s f. SendFOE (Tag (State s) tag) f => f s
- Data.Effect.State: get'' :: forall key_abnb (s_abmq :: Type) f_abnc. SendInsBy key_abnb (State s_abmq) f_abnc => f_abnc s_abmq
+ Data.Effect.State: get'' :: forall {k} (key :: k) s f. SendFOEBy key (State s) f => f s
- Data.Effect.State: put :: forall (s_abmr :: Type) f_abnd. SendIns (State s_abmr) f_abnd => s_abmr -> f_abnd ()
+ Data.Effect.State: put :: SendFOE (State s) f => s -> f ()
- Data.Effect.State: put' :: forall tag_abnf (s_abmr :: Type) f_abng. SendIns (Tag (State s_abmr) tag_abnf) f_abng => s_abmr -> f_abng ()
+ Data.Effect.State: put' :: forall {k} (tag :: k) s f. SendFOE (Tag (State s) tag) f => s -> f ()
- Data.Effect.State: put'' :: forall key_abni (s_abmr :: Type) f_abnj. SendInsBy key_abni (State s_abmr) f_abnj => s_abmr -> f_abnj ()
+ Data.Effect.State: put'' :: forall {k} (key :: k) s f. SendFOEBy key (State s) f => s -> f ()
- Data.Effect.State: type LState s_abmo = LiftIns (State s_abmo)
+ Data.Effect.State: type LState s = LiftFOE State s
- Data.Effect.Unlift: [WithRunInBase] :: ((forall x. f x -> b x) -> b a) -> UnliftBase b f a
+ Data.Effect.Unlift: [WithRunInBase] :: forall (f :: Type -> Type) (b :: Type -> Type) a. ((forall x. () => f x -> b x) -> b a) -> UnliftBase b f a
- Data.Effect.Unlift: data UnliftBase b f (a :: Type)
+ Data.Effect.Unlift: data UnliftBase (b :: Type -> Type) (f :: Type -> Type) a
- Data.Effect.Unlift: withRunInBase :: forall (b_ab5Y :: Type -> Type) (a_ab5Z :: Type) f_ab5X. SendSig (UnliftBase b_ab5Y) f_ab5X => ((forall (x_ab60 :: Type). f_ab5X x_ab60 -> b_ab5Y x_ab60) -> b_ab5Y a_ab5Z) -> f_ab5X a_ab5Z
+ Data.Effect.Unlift: withRunInBase :: forall b a f. SendHOE (UnliftBase b) f => ((forall x. () => f x -> b x) -> b a) -> f a
- Data.Effect.Unlift: withRunInBase' :: forall tag_ab7o (b_ab5Y :: Type -> Type) (a_ab5Z :: Type) f_ab5X. SendSig (TagH (UnliftBase b_ab5Y) tag_ab7o) f_ab5X => ((forall (x_ab60 :: Type). f_ab5X x_ab60 -> b_ab5Y x_ab60) -> b_ab5Y a_ab5Z) -> f_ab5X a_ab5Z
+ Data.Effect.Unlift: withRunInBase' :: forall {k} (tag :: k) b a f. SendHOE (TagH (UnliftBase b) tag) f => ((forall x. () => f x -> b x) -> b a) -> f a
- Data.Effect.Unlift: withRunInBase'' :: forall key_ab7q (b_ab5Y :: Type -> Type) (a_ab5Z :: Type) f_ab5X. SendSigBy key_ab7q (UnliftBase b_ab5Y) f_ab5X => ((forall (x_ab60 :: Type). f_ab5X x_ab60 -> b_ab5Y x_ab60) -> b_ab5Y a_ab5Z) -> f_ab5X a_ab5Z
+ Data.Effect.Unlift: withRunInBase'' :: forall {k} (key :: k) b a f. SendHOEBy key (UnliftBase b) f => ((forall x. () => f x -> b x) -> b a) -> f a
- Data.Effect.Unlift: withRunInIO' :: forall tag f a. (UnliftIO ## tag) <<: f => ((f ~> IO) -> IO a) -> f a
+ Data.Effect.Unlift: withRunInIO' :: forall {k} (tag :: k) f a. (UnliftIO ## tag) <<: f => ((f ~> IO) -> IO a) -> f a
- Data.Effect.Unlift: withRunInIO'' :: forall key f a. SendSigBy key UnliftIO f => ((f ~> IO) -> IO a) -> f a
+ Data.Effect.Unlift: withRunInIO'' :: forall {k} (key :: k) f a. SendHOEBy key UnliftIO f => ((f ~> IO) -> IO a) -> f a
- Data.Effect.Writer: [Censor] :: (w -> w) -> f a -> WriterH w f a
+ Data.Effect.Writer: [Censor] :: forall w (f :: Type -> Type) a. (w -> w) -> f a -> WriterH w f a
- Data.Effect.Writer: [Listen] :: f a -> WriterH w f (w, a)
+ Data.Effect.Writer: [Listen] :: forall (f :: Type -> Type) a1 w. f a1 -> WriterH w f (w, a1)
- Data.Effect.Writer: [Tell] :: w -> Tell w ()
+ Data.Effect.Writer: [Tell] :: forall w. w -> Tell w ()
- Data.Effect.Writer: censor :: forall (w_aamq :: Type) (a_aams :: Type) f_aamr. SendSig (WriterH w_aamq) f_aamr => (w_aamq -> w_aamq) -> f_aamr a_aams -> f_aamr a_aams
+ Data.Effect.Writer: censor :: forall w a f. SendHOE (WriterH w) f => (w -> w) -> f a -> f a
- Data.Effect.Writer: censor' :: forall tag_aawG (w_aamq :: Type) (a_aams :: Type) f_aamr. SendSig (TagH (WriterH w_aamq) tag_aawG) f_aamr => (w_aamq -> w_aamq) -> f_aamr a_aams -> f_aamr a_aams
+ Data.Effect.Writer: censor' :: forall {k} (tag :: k) w a f. SendHOE (TagH (WriterH w) tag) f => (w -> w) -> f a -> f a
- Data.Effect.Writer: censor'' :: forall key_aawJ (w_aamq :: Type) (a_aams :: Type) f_aamr. SendSigBy key_aawJ (WriterH w_aamq) f_aamr => (w_aamq -> w_aamq) -> f_aamr a_aams -> f_aamr a_aams
+ Data.Effect.Writer: censor'' :: forall {k} (key :: k) w a f. SendHOEBy key (WriterH w) f => (w -> w) -> f a -> f a
- Data.Effect.Writer: data WriterH w f a
+ Data.Effect.Writer: data WriterH w (f :: Type -> Type) a
- Data.Effect.Writer: listen :: forall (a_X0 :: Type) (w_aamp :: Type) f_aamn. SendSig (WriterH w_aamp) f_aamn => f_aamn a_X0 -> f_aamn (w_aamp, a_X0)
+ Data.Effect.Writer: listen :: forall a w f. SendHOE (WriterH w) f => f a -> f (w, a)
- Data.Effect.Writer: listen' :: forall tag_aawA (a_X0 :: Type) (w_aamp :: Type) f_aamn. SendSig (TagH (WriterH w_aamp) tag_aawA) f_aamn => f_aamn a_X0 -> f_aamn (w_aamp, a_X0)
+ Data.Effect.Writer: listen' :: forall {k} (tag :: k) a w f. SendHOE (TagH (WriterH w) tag) f => f a -> f (w, a)
- Data.Effect.Writer: listen'' :: forall key_aawC (a_X0 :: Type) (w_aamp :: Type) f_aamn. SendSigBy key_aawC (WriterH w_aamp) f_aamn => f_aamn a_X0 -> f_aamn (w_aamp, a_X0)
+ Data.Effect.Writer: listen'' :: forall {k} (key :: k) a w f. SendHOEBy key (WriterH w) f => f a -> f (w, a)
- Data.Effect.Writer: tell :: forall (w_aamv :: Type) f_aawj. SendIns (Tell w_aamv) f_aawj => w_aamv -> f_aawj ()
+ Data.Effect.Writer: tell :: SendFOE (Tell w) f => w -> f ()
- Data.Effect.Writer: tell' :: forall tag_aawl (w_aamv :: Type) f_aawm. SendIns (Tag (Tell w_aamv) tag_aawl) f_aawm => w_aamv -> f_aawm ()
+ Data.Effect.Writer: tell' :: forall {k} (tag :: k) w f. SendFOE (Tag (Tell w) tag) f => w -> f ()
- Data.Effect.Writer: tell'' :: forall key_aawo (w_aamv :: Type) f_aawp. SendInsBy key_aawo (Tell w_aamv) f_aawp => w_aamv -> f_aawp ()
+ Data.Effect.Writer: tell'' :: forall {k} (key :: k) w f. SendFOEBy key (Tell w) f => w -> f ()
- Data.Effect.Writer: type LTell w_aamt = LiftIns (Tell w_aamt)
+ Data.Effect.Writer: type LTell w = LiftFOE Tell w

Files

ChangeLog.md view
@@ -3,3 +3,9 @@ ## 0.1.1.0 -- 2024-09-01 * Added 'Timer' effects. * Added convenience functions for error handling with the Except effect.++## 0.2.0.0 -- 2024-10-10+* Support for the core version upgrade to 0.2.+    * Support for GHC 9.8.2.+* Changed Shift/Reset and Provider effects to unlift form, making all effects HFunctor.+* Renamed the 'Coroutine' constructor (incorrect) of the 'Status' type in coroutines to 'Continue'.
README.md view
@@ -13,10 +13,13 @@ ## Your contributions are welcome! Please see [CONTRIBUTING.md](https://github.com/sayo-hs/data-effects/blob/ef706ef3fa547de01ce6bb5636af911354e53b58/CONTRIBUTING.md). -## Credits-Parts of this project have been adapted or inspired by the following resources:+## Acknowledgements, citations, and related work+The following is a non-exhaustive list of people and works that have had a significant impact, directly or indirectly, on its design and implementation: -* **[compdata](https://github.com/pa-ba/compdata)**-    * **Copyright** (c) 2010--2011 Patrick Bahr, Tom Hvitved-    * **License**: BSD-3-Clause-    * **Modifications**: Used TemplateHaskell code to derive instances of the `HFunctor` type class.+- Casper Bach Poulsen and Cas van der Rest — [Hefty Algebras: Modular Elaboration of Higher-Order Algebraic Effects][casper:hefty]+- Patrick Bahr and Tom Hvitved — [`compdata`: Compositional Data Types][gh:compdata]+- Michael Szvetits — [`effet`][gh:effet]++[casper:hefty]: https://dl.acm.org/doi/10.1145/3571255+[gh:compdata]: https://github.com/pa-ba/compdata+[gh:effet]: https://github.com/typedbyte/effet
data-effects.cabal view
@@ -1,6 +1,6 @@ cabal-version:      2.4 name:               data-effects-version:            0.1.2.0+version:            0.2.0.0  -- A short (one-line) description of the package. synopsis: A basic framework for effect systems based on effects represented by GADTs.@@ -19,25 +19,27 @@ -- The license under which the package is released. license:            MPL-2.0 license-file:       LICENSE-author:             Yamada Ryo <ymdfield@outlook.jp>-maintainer:         Yamada Ryo <ymdfield@outlook.jp>+author:             Sayo Koyoneda <ymdfield@outlook.jp>+maintainer:         Sayo Koyoneda <ymdfield@outlook.jp>  -- A copyright notice.-copyright: 2023 Yamada Ryo+copyright: 2023-2024 Sayo Koyoneda category: Control, Effect -extra-source-files:+extra-doc-files:     ChangeLog.md     NOTICE     README.md  tested-with:+    GHC == 9.8.2+    GHC == 9.4.1     GHC == 9.2.8  source-repository head     type: git     location: https://github.com/sayo-hs/data-effects-    tag: v0.1.0+    tag: v0.2.0     subdir: data-effects  library@@ -51,8 +53,6 @@         Data.Effect.Coroutine         Data.Effect.Input         Data.Effect.Output-        Data.Effect.Provider-        Data.Effect.Provider.Implicit         Data.Effect.Fix         Data.Effect.Fail         Data.Effect.Cont@@ -62,6 +62,7 @@         Data.Effect.Concurrent.Thread         Data.Effect.Concurrent.Timer         Data.Effect.Unlift+        Data.Effect.Provider         Data.Effect.ShiftReset         Data.Effect.KVStore @@ -85,14 +86,14 @@     -- LANGUAGE extensions used by modules in this package.     -- other-extensions:     build-depends:-        base                        ^>= 4.16.4.0,-        data-effects-core           ^>= 0.1,-        data-effects-th             ^>= 0.1.2,+        base                        >= 4.16.4 && < 4.21,+        data-effects-core           ^>= 0.2,+        data-effects-th             ^>= 0.2,         these                       ^>= 1.2,         data-default                ^>= 0.7.1,         text                        >= 2.0 && < 2.2,-        lens                        ^>= 5.2.3,-        time                        ^>= 1.11.1,+        lens                        >= 5.2.3 && < 5.4,+        time                        >= 1.11.1 && < 1.15,      hs-source-dirs:   src     ghc-options:      -Wall@@ -117,7 +118,7 @@     build-depends:         data-effects,         base,-        tasty                         ^>= 1.4,+        tasty                         >= 1.4 && < 1.6,         tasty-hunit                   ^>= 0.10,      type: exitcode-stdio-1.0
src/Data/Effect/Accum.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2023 Yamada Ryo+Copyright   :  (c) 2023 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/Concurrent/Thread.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2023 Yamada Ryo+Copyright   :  (c) 2023 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/Concurrent/Timer.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2024 Yamada Ryo+Copyright   :  (c) 2024 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/Coroutine.hs view
@@ -6,7 +6,7 @@  {- | Copyright   : (c) 2016 Allele Dev; 2017 Ixperta Solutions s.r.o.; 2017 Alexis King-              (c) 2023-2024 Yamada Ryo+              (c) 2023-2024 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental@@ -25,21 +25,21 @@  makeEffectF [''Yield] -yield_ :: Yield a () <: f => a -> f ()+yield_ :: (Yield a () <: f) => a -> f () yield_ = yield {-# INLINE yield_ #-}  data Status f a b r     = Done r-    | Coroutine a (b -> f (Status f a b r))+    | Continue a (b -> f (Status f a b r))     deriving (Functor) -continueStatus :: Monad m => (x -> m (Status m a b r)) -> Status m a b x -> m (Status m a b r)+continueStatus :: (Monad m) => (x -> m (Status m a b r)) -> Status m a b x -> m (Status m a b r) continueStatus kk = \case     Done x -> kk x-    Coroutine a k -> pure . Coroutine a $ k >=> continueStatus kk+    Continue a k -> pure . Continue a $ k >=> continueStatus kk -loopStatus :: Monad m => (a -> m b) -> Status m a b r -> m r+loopStatus :: (Monad m) => (a -> m b) -> Status m a b r -> m r loopStatus f = \case     Done r -> pure r-    Coroutine a k -> f a >>= k >>= loopStatus f+    Continue a k -> f a >>= k >>= loopStatus f
src/Data/Effect/Except.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2023 Yamada Ryo+Copyright   :  (c) 2023 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/Fresh.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2023 Yamada Ryo+Copyright   :  (c) 2023 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/Input.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2023 Yamada Ryo+Copyright   :  (c) 2023 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/KVStore.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2024 Yamada Ryo+Copyright   :  (c) 2024 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/NonDet.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   : (c) 2024 Yamada Ryo+Copyright   : (c) 2024 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/Output.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2023 Yamada Ryo+Copyright   :  (c) 2023 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/Provider.hs view
@@ -5,46 +5,52 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2023 Yamada Ryo+Copyright   :  (c) 2023-2024 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental Portability :  portable -This module provides the `Provider` effect, comes-from [@Effectful.Provider@](https://hackage.haskell.org/package/effectful-core-2.3.0.0/docs/Effectful-Provider.html)+This module provides the `Provider` effect, like [@Effectful.Provider@](https://hackage.haskell.org/package/effectful-core-2.3.0.0/docs/Effectful-Provider.html) in the @effectful@ package. -} module Data.Effect.Provider where -data Provider' c i ctx e (f :: Type -> Type) (a :: Type) where-    Provide ::-        i ->-        (forall g. (c g, e g) => (forall x. f x -> g x) -> g a) ->-        Provider' c i ctx e f (ctx a)+import Data.Effect.Key (type (##>))+import Data.Functor.Identity (Identity, runIdentity) -makeKeyedEffect [] [''Provider']+data Provider' ctx i b (f :: Type -> Type) (a :: Type) where+    Provide+        :: i+        -> ((forall x. f x -> b x) -> b a)+        -> Provider' ctx i b f (ctx a)+makeEffectH [''Provider'] -type MonadProvider' = Provider' Monad-type ApplicativeProvider' = Provider' Applicative+data ProviderKey ctx i -type MonadProvider i ctx e = Provider Monad i ctx e-type ApplicativeProvider i ctx e = Provider Applicative i ctx e+type Provider ctx i b = ProviderKey ctx i ##> Provider' ctx i b+type Provider_ i b = ProviderKey Identity i ##> Provider' Identity i b -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)-mprovide = provide-{-# INLINE mprovide #-}+infix 2 .! -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)-aprovide = provide-{-# INLINE aprovide #-}+(.!)+    :: forall i f a b+     . ( SendHOEBy (ProviderKey Identity i) (Provider' Identity i b) f+       , Functor f+       )+    => i+    -> ((f ~> b) -> b a)+    -> f a+i .! f = runIdentity <$> provide'' @(ProviderKey Identity i) i f+{-# INLINE (.!) #-}++infix 2 ..!++(..!)+    :: forall ctx i f a b+     . (SendHOEBy (ProviderKey ctx i) (Provider' ctx i b) f)+    => i+    -> ((f ~> b) -> b a)+    -> f (ctx a)+i ..! f = provide'' @(ProviderKey ctx i) i f+{-# INLINE (..!) #-}
− src/Data/Effect/Provider/Implicit.hs
@@ -1,45 +0,0 @@-{-# LANGUAGE AllowAmbiguousTypes #-}-{-# HLINT ignore "Use const" #-}-{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}---- This Source Code Form is subject to the terms of the Mozilla Public--- License, v. 2.0. If a copy of the MPL was not distributed with this--- file, You can obtain one at https://mozilla.org/MPL/2.0/.--{- |-Copyright   :  (c) 2023 Yamada Ryo-License     :  MPL-2.0 (see the file LICENSE)-Maintainer  :  ymdfield@outlook.jp-Stability   :  experimental-Portability :  portable--}-module Data.Effect.Provider.Implicit where--data ImplicitProvider' c i e (f :: Type -> Type) (a :: Type) where-    WithImplicit ::-        i ->-        (forall g. (c g, e g) => (forall x. f x -> g x) -> g a) ->-        ImplicitProvider' c i e f a--makeKeyedEffect [] [''ImplicitProvider']--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-i .! m = withImplicit i \_ -> m-{-# INLINE (.!) #-}--(..!) ::-    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-i ..! f = withImplicit i f-{-# INLINE (..!) #-}
src/Data/Effect/Reader.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2023 Yamada Ryo+Copyright   :  (c) 2023 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/Resource.hs view
@@ -10,7 +10,7 @@  {- | Copyright   :  (c) 2019-2023 The Polysemy Lounge-               (c) 2023 Yamada Ryo+               (c) 2023 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/ShiftReset.hs view
@@ -6,37 +6,38 @@  module Data.Effect.ShiftReset where -import Control.Monad (void, (>=>))-import Data.Effect.Key.TH qualified as Keyed-import Data.Effect.TH (noExtTemplate)-import Data.Effect.TH.Internal (noDeriveHFunctor)+import Control.Monad ((>=>))+import Data.Functor (void) -data Shift' (r :: Type) m a where-    Shift :: forall r m a. ((a -> m r) -> m r) -> Shift' r m a+data Shift' (r :: Type) b m a where+    Shift :: forall r b m a. ((a -> b r) -> (forall x. m x -> b x) -> b r) -> Shift' r b m a -makeEffect'-    (def & noDeriveHFunctor & Keyed.changeNormalSenderFnNameFormat)-    Keyed.genEffectKey-    []-    [''Shift']+makeKeyedEffect [] [''Shift'] -callCC :: forall r m a. (SendSigBy ShiftKey (Shift' r) m, Monad m) => ((a -> m r) -> m a) -> m a-callCC f = shift \k -> f (k >=> exit) >>= k+callCC+    :: forall r b m a+     . (SendHOEBy ShiftKey (Shift' r b) m, Monad m, Monad b)+    => ((a -> b r) -> m a)+    -> m a+callCC f = shift \k run -> run (f $ k >=> run . exit) >>= k -exit :: (SendSigBy ShiftKey (Shift' r) f, Applicative f) => r -> f a-exit r = shift \_ -> pure r+exit :: (SendHOEBy ShiftKey (Shift' r b) m, Applicative b) => r -> m a+exit r = shift \_ _ -> pure r {-# INLINE exit #-} -getCC :: (SendSigBy ShiftKey (Shift' r) m, Monad m) => m (m r)+getCC+    :: forall r b m+     . (SendHOEBy ShiftKey (Shift' r b) m, Monad m, Monad b)+    => m (b r) getCC = callCC \exit' -> let a = exit' a in pure a -data Shift_ m a where-    Shift_ :: (forall (r :: Type). (a -> m r) -> m r) -> Shift_ m a+data Shift_' b m a where+    Shift_' :: (forall (r :: Type). (a -> b r) -> (forall x. m x -> b x) -> b r) -> Shift_' b m a -makeEffect' (def & noDeriveHFunctor) noExtTemplate [] [''Shift_]+makeKeyedEffect [] [''Shift_'] -getCC_ :: (Shift_ <<: m, Monad m) => m (m ())-getCC_ = shift_ \k -> let k' = k $ void k' in k'+getCC_ :: (SendHOEBy Shift_Key (Shift_' b) m, Functor b) => m (b ())+getCC_ = shift_' \k _ -> let k' = k $ void k' in k'  data Reset m (a :: Type) where     Reset :: m a -> Reset m a
src/Data/Effect/State.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2023 Yamada Ryo+Copyright   :  (c) 2023 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Data/Effect/Unlift.hs view
@@ -19,14 +19,14 @@ pattern WithRunInIO f = WithRunInBase f {-# COMPLETE WithRunInIO #-} -withRunInIO :: UnliftIO <<: f => (f ~> IO -> IO a) -> f a+withRunInIO :: (UnliftIO <<: f) => (f ~> IO -> IO a) -> f a withRunInIO = withRunInBase {-# INLINE withRunInIO #-} -withRunInIO' :: forall tag f a. UnliftIO ## tag <<: f => (f ~> IO -> IO a) -> f a+withRunInIO' :: forall tag f a. (UnliftIO ## tag <<: f) => (f ~> IO -> IO a) -> f a withRunInIO' = withRunInBase' @tag {-# INLINE withRunInIO' #-} -withRunInIO'' :: forall key f a. SendSigBy key UnliftIO f => (f ~> IO -> IO a) -> f a+withRunInIO'' :: forall key f a. (SendHOEBy key UnliftIO f) => (f ~> IO -> IO a) -> f a withRunInIO'' = withRunInBase'' @key {-# INLINE withRunInIO'' #-}
src/Data/Effect/Writer.hs view
@@ -5,7 +5,7 @@ -- file, You can obtain one at https://mozilla.org/MPL/2.0/.  {- |-Copyright   :  (c) 2023 Yamada Ryo+Copyright   :  (c) 2023 Sayo Koyoneda License     :  MPL-2.0 (see the file LICENSE) Maintainer  :  ymdfield@outlook.jp Stability   :  experimental
src/Prelude.hs view
@@ -16,10 +16,10 @@ ) where  import Control.Effect (type (<:), type (<<:), type (~>))-import Control.Effect.Key (SendInsBy, SendSigBy)+import Control.Effect.Key (SendFOEBy, SendHOEBy) import Data.Default (Default (def))-import Data.Effect.Key.TH (makeKeyedEffect)-import Data.Effect.TH (makeEffect, makeEffect', makeEffectF, makeEffectH)+import Data.Effect.Key.TH (makeKeyedEffect, makeKeyedEffect_)+import Data.Effect.TH (makeEffect, makeEffect', makeEffectF, makeEffectH, makeEffectH_) import Data.Function ((&)) import Data.Kind (Type)