packages feed

data-effects 0.4.0.2 → 0.4.1.0

raw patch · 3 files changed

+69/−5 lines, 3 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ Data.Effect.Accum: instance Data.Effect.PolyHFunctor (Data.Effect.Accum.Accum w)
+ Data.Effect.Concurrent.Parallel: instance Data.Effect.PolyHFunctor (Data.Effect.Concurrent.Parallel.For t)
+ Data.Effect.Concurrent.Parallel: instance Data.Effect.PolyHFunctor Data.Effect.Concurrent.Parallel.Halt
+ Data.Effect.Concurrent.Parallel: instance Data.Effect.PolyHFunctor Data.Effect.Concurrent.Parallel.Parallel
+ Data.Effect.Concurrent.Parallel: instance Data.Effect.PolyHFunctor Data.Effect.Concurrent.Parallel.Race
+ Data.Effect.Concurrent.Timer: instance Data.Effect.PolyHFunctor Data.Effect.Concurrent.Timer.CyclicTimer
+ Data.Effect.Concurrent.Timer: instance Data.Effect.PolyHFunctor Data.Effect.Concurrent.Timer.Timer
+ Data.Effect.Coroutine: instance Data.Effect.PolyHFunctor (Data.Effect.Coroutine.Yield a b)
+ Data.Effect.Fresh: instance Data.Effect.PolyHFunctor (Data.Effect.Fresh.Fresh i)
+ Data.Effect.Input: instance Data.Effect.PolyHFunctor (Data.Effect.Input.Input i)
+ Data.Effect.KVStore: instance Data.Effect.PolyHFunctor (Data.Effect.KVStore.KVStore k v)
+ Data.Effect.Log: instance Data.Effect.PolyHFunctor (Data.Effect.Log.Log msg)
+ Data.Effect.Output: instance Data.Effect.PolyHFunctor (Data.Effect.Output.Output o)
+ Data.Effect.Provider: runRegionProvider :: forall t i a (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (PolyHFunctors r, forall (es' :: [Effect]). () => Functor (Eff ff es'), KnownLength es, Free c ff) => (forall x. () => i -> Eff ff (es ++ (Provider ff t i es r ': r)) x -> Eff ff (Provider ff t i es r ': r) (t x)) -> Eff ff (Provider ff t i es r ': r) a -> Eff ff r a
+ Data.Effect.Provider: runRegionProvider_ :: forall i a (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (PolyHFunctors r, forall (es' :: [Effect]). () => Functor (Eff ff es'), KnownLength es, Free c ff) => (forall x. () => i -> Eff ff (es ++ (Provider ff Identity i es r ': r)) x -> Eff ff (Provider ff Identity i es r ': r) x) -> Eff ff (Provider ff Identity i es r ': r) a -> Eff ff r a
+ Data.Effect.Provider: runRegionProvider__ :: forall a (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (PolyHFunctors r, forall (es' :: [Effect]). () => Functor (Eff ff es'), KnownLength es, Free c ff) => (forall x. () => Eff ff (es ++ (Provider ff Identity () es r ': r)) x -> Eff ff (Provider ff Identity () es r ': r) x) -> Eff ff (Provider ff Identity () es r ': r) a -> Eff ff r a
+ Data.Effect.Provider: runRegionScoped :: forall {k} t i a (es :: [k -> Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (PolyHFunctors r, KnownLength es, Free c ff) => (forall (s :: k) x. () => i s -> Eff ff (Each es s ++ (Scoped ff t i es r ': r)) x -> Eff ff (Scoped ff t i es r ': r) (t s x)) -> Eff ff (Scoped ff t i es r ': r) a -> Eff ff r a
+ Data.Effect.Provider: runRegionScoped_ :: forall {k} t i a (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (PolyHFunctors r, KnownLength es, Free c ff) => (forall (p :: k) x. () => i p -> Eff ff (es ++ (Scoped_ ff t i es r ': r)) x -> Eff ff (Scoped_ ff t i es r ': r) (t p x)) -> Eff ff (Scoped_ ff t i es r ': r) a -> Eff ff r a
+ Data.Effect.Select: instance Data.Effect.PolyHFunctor (Data.Effect.Select.Select r)
+ Data.Effect.Shift: instance Data.Effect.PolyHFunctor (Data.Effect.Shift.Shift ans ref)
- Data.Effect.Accum: [Add] :: w -> Accum w f ()
+ Data.Effect.Accum: [Add] :: forall w (a :: Type -> Type). w -> Accum w a ()
- Data.Effect.Accum: [Look] :: Accum w f w
+ Data.Effect.Accum: [Look] :: forall w (a :: Type -> Type). Accum w a w
- Data.Effect.Accum: add :: forall (w_av0M :: Type) f_av0N es_av1Q ff_av1P c_av1R. (Free c_av1R ff_av1P, f_av0N ~ Eff ff_av1P es_av1Q, (:>) (Accum w_av0M) es_av1Q) => w_av0M -> f_av0N ()
+ Data.Effect.Accum: add :: forall w f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Accum w :> es) => w -> f ()
- Data.Effect.Accum: add' :: forall key_av1T (w_av0M :: Type) f_av0N es_av1V ff_av1U c_av1W. (Free c_av1W ff_av1U, f_av0N ~ Eff ff_av1U es_av1V, Has key_av1T (Accum w_av0M) es_av1V) => w_av0M -> f_av0N ()
+ Data.Effect.Accum: add' :: forall {k} (key :: k) w f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Accum w) es) => w -> f ()
- Data.Effect.Accum: add'' :: forall tag_av1Y (w_av0M :: Type) f_av0N es_av20 ff_av1Z c_av21. (Free c_av21 ff_av1Z, f_av0N ~ Eff ff_av1Z es_av20, (:>) (Tagged tag_av1Y (Accum w_av0M)) es_av20) => w_av0M -> f_av0N ()
+ Data.Effect.Accum: add'' :: forall {k} (tag :: k) w f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Accum w) :> es) => w -> f ()
- Data.Effect.Accum: add'_ :: forall (w_av0M :: Type) f_av0N es_av24 ff_av23 c_av25. (Free c_av25 ff_av23, f_av0N ~ Eff ff_av23 es_av24, In (Accum w_av0M) es_av24) => w_av0M -> f_av0N ()
+ Data.Effect.Accum: add'_ :: forall w f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Accum w) es) => w -> f ()
- Data.Effect.Accum: data Accum w :: Effect
+ Data.Effect.Accum: data Accum w (a :: Type -> Type) b
- Data.Effect.Accum: look :: forall (w_av0O :: Type) f_av0P es_av28 ff_av27 c_av29. (Free c_av29 ff_av27, f_av0P ~ Eff ff_av27 es_av28, (:>) (Accum w_av0O) es_av28) => f_av0P w_av0O
+ Data.Effect.Accum: look :: forall w f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Accum w :> es) => f w
- Data.Effect.Accum: look' :: forall key_av2a (w_av0O :: Type) f_av0P es_av2c ff_av2b c_av2d. (Free c_av2d ff_av2b, f_av0P ~ Eff ff_av2b es_av2c, Has key_av2a (Accum w_av0O) es_av2c) => f_av0P w_av0O
+ Data.Effect.Accum: look' :: forall {k} (key :: k) w f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Accum w) es) => f w
- Data.Effect.Accum: look'' :: forall tag_av2e (w_av0O :: Type) f_av0P es_av2g ff_av2f c_av2h. (Free c_av2h ff_av2f, f_av0P ~ Eff ff_av2f es_av2g, (:>) (Tagged tag_av2e (Accum w_av0O)) es_av2g) => f_av0P w_av0O
+ Data.Effect.Accum: look'' :: forall {k} (tag :: k) w f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Accum w) :> es) => f w
- Data.Effect.Accum: look'_ :: forall (w_av0O :: Type) f_av0P es_av2j ff_av2i c_av2k. (Free c_av2k ff_av2i, f_av0P ~ Eff ff_av2i es_av2j, In (Accum w_av0O) es_av2j) => f_av0P w_av0O
+ Data.Effect.Accum: look'_ :: forall w f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Accum w) es) => f w
- Data.Effect.CC: callCC :: forall a ref es ff c. (CC ref :> es, Monad (Eff ff es), Free c ff) => ((forall b. a -> Eff ff es b) -> Eff ff es a) -> Eff ff es a
+ Data.Effect.CC: callCC :: forall a (ref :: Type -> Type) (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (CC ref :> es, Monad (Eff ff es), Free c ff) => ((forall b. () => a -> Eff ff es b) -> Eff ff es a) -> Eff ff es a
- Data.Effect.CC: data () => CC (ref :: Type -> Type) (a :: Type -> Type) b
+ Data.Effect.CC: data CC (ref :: Type -> Type) (a :: Type -> Type) b
- Data.Effect.CC: getCC :: forall a ref es ff c. (CC ref :> es, Monad (Eff ff es), Free c ff) => Eff ff es (Eff ff es a)
+ Data.Effect.CC: getCC :: forall a (ref :: Type -> Type) (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (CC ref :> es, Monad (Eff ff es), Free c ff) => Eff ff es (Eff ff es a)
- Data.Effect.CC: jump :: forall (ref_aja1 :: Type -> Type) (a1_aja5 :: Type) (b_aja3 :: Type) a_aja2 es_auzN ff_auzM c_auzO. (Free c_auzO ff_auzM, a_aja2 ~ Eff ff_auzM es_auzN, (:>) (CC ref_aja1) es_auzN) => ref_aja1 a1_aja5 -> a1_aja5 -> a_aja2 b_aja3
+ Data.Effect.CC: jump :: forall ref a1 b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, CC ref :> es) => ref a1 -> a1 -> a b
- Data.Effect.CC: jump' :: forall key_auzR (ref_aja1 :: Type -> Type) (a1_aja5 :: Type) (b_aja3 :: Type) a_aja2 es_auzT ff_auzS c_auzU. (Free c_auzU ff_auzS, a_aja2 ~ Eff ff_auzS es_auzT, Has key_auzR (CC ref_aja1) es_auzT) => ref_aja1 a1_aja5 -> a1_aja5 -> a_aja2 b_aja3
+ Data.Effect.CC: jump' :: forall {k} (key :: k) ref a1 b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key (CC ref) es) => ref a1 -> a1 -> a b
- Data.Effect.CC: jump'' :: forall tag_auzX (ref_aja1 :: Type -> Type) (a1_aja5 :: Type) (b_aja3 :: Type) a_aja2 es_auzZ ff_auzY c_auA0. (Free c_auA0 ff_auzY, a_aja2 ~ Eff ff_auzY es_auzZ, (:>) (Tagged tag_auzX (CC ref_aja1)) es_auzZ) => ref_aja1 a1_aja5 -> a1_aja5 -> a_aja2 b_aja3
+ Data.Effect.CC: jump'' :: forall {k} (tag :: k) ref a1 b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag (CC ref) :> es) => ref a1 -> a1 -> a b
- Data.Effect.CC: jump'_ :: forall (ref_aja1 :: Type -> Type) (a1_aja5 :: Type) (b_aja3 :: Type) a_aja2 es_auA4 ff_auA3 c_auA5. (Free c_auA5 ff_auA3, a_aja2 ~ Eff ff_auA3 es_auA4, In (CC ref_aja1) es_auA4) => ref_aja1 a1_aja5 -> a1_aja5 -> a_aja2 b_aja3
+ Data.Effect.CC: jump'_ :: forall ref a1 b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In (CC ref) es) => ref a1 -> a1 -> a b
- Data.Effect.CC: subFork :: forall (ref_aja1 :: Type -> Type) (a1_aja4 :: Type) a_aja2 es_auzz ff_auzy c_auzA. (Free c_auzA ff_auzy, a_aja2 ~ Eff ff_auzy es_auzz, (:>) (CC ref_aja1) es_auzz) => a_aja2 (Either (ref_aja1 a1_aja4) a1_aja4)
+ Data.Effect.CC: subFork :: forall ref a1 a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, CC ref :> es) => a (Either (ref a1) a1)
- Data.Effect.CC: subFork' :: forall key_auzB (ref_aja1 :: Type -> Type) (a1_aja4 :: Type) a_aja2 es_auzD ff_auzC c_auzE. (Free c_auzE ff_auzC, a_aja2 ~ Eff ff_auzC es_auzD, Has key_auzB (CC ref_aja1) es_auzD) => a_aja2 (Either (ref_aja1 a1_aja4) a1_aja4)
+ Data.Effect.CC: subFork' :: forall {k} (key :: k) ref a1 a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key (CC ref) es) => a (Either (ref a1) a1)
- Data.Effect.CC: subFork'' :: forall tag_auzF (ref_aja1 :: Type -> Type) (a1_aja4 :: Type) a_aja2 es_auzH ff_auzG c_auzI. (Free c_auzI ff_auzG, a_aja2 ~ Eff ff_auzG es_auzH, (:>) (Tagged tag_auzF (CC ref_aja1)) es_auzH) => a_aja2 (Either (ref_aja1 a1_aja4) a1_aja4)
+ Data.Effect.CC: subFork'' :: forall {k} (tag :: k) ref a1 a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag (CC ref) :> es) => a (Either (ref a1) a1)
- Data.Effect.CC: subFork'_ :: forall (ref_aja1 :: Type -> Type) (a1_aja4 :: Type) a_aja2 es_auzK ff_auzJ c_auzL. (Free c_auzL ff_auzJ, a_aja2 ~ Eff ff_auzJ es_auzK, In (CC ref_aja1) es_auzK) => a_aja2 (Either (ref_aja1 a1_aja4) a1_aja4)
+ Data.Effect.CC: subFork'_ :: forall ref a1 a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In (CC ref) es) => a (Either (ref a1) a1)
- Data.Effect.Concurrent.Parallel: Concurrently :: Eff ff es a -> Concurrently ff es a
+ Data.Effect.Concurrent.Parallel: Concurrently :: Eff ff es a -> Concurrently (ff :: (Type -> Type) -> Type -> Type) (es :: [Effect]) a
- Data.Effect.Concurrent.Parallel: [For] :: t (f a) -> For t f (t a)
+ Data.Effect.Concurrent.Parallel: [For] :: forall (t :: Type -> Type) (a :: Type -> Type) a1. t (a a1) -> For t a (t a1)
- Data.Effect.Concurrent.Parallel: [Halt] :: Halt f a
+ Data.Effect.Concurrent.Parallel: [Halt] :: forall (a :: Type -> Type) b. Halt a b
- Data.Effect.Concurrent.Parallel: [LiftP2] :: (a -> b -> c) -> f a -> f b -> Parallel f c
+ Data.Effect.Concurrent.Parallel: [LiftP2] :: forall a1 b1 b (a :: Type -> Type). (a1 -> b1 -> b) -> a a1 -> a b1 -> Parallel a b
- Data.Effect.Concurrent.Parallel: [Poldl] :: (a -> Maybe b -> f (Either r a)) -> f a -> f b -> Poll f r
+ Data.Effect.Concurrent.Parallel: [Poldl] :: forall a1 b1 (a :: Type -> Type) b. (a1 -> Maybe b1 -> a (Either b a1)) -> a a1 -> a b1 -> Poll a b
- Data.Effect.Concurrent.Parallel: [Race] :: f a -> f a -> Race f a
+ Data.Effect.Concurrent.Parallel: [Race] :: forall (a :: Type -> Type) b. a b -> a b -> Race a b
- Data.Effect.Concurrent.Parallel: [runConcurrently] :: Concurrently ff es a -> Eff ff es a
+ Data.Effect.Concurrent.Parallel: [runConcurrently] :: Concurrently (ff :: (Type -> Type) -> Type -> Type) (es :: [Effect]) a -> Eff ff es a
- Data.Effect.Concurrent.Parallel: cancelBy :: forall a b es ff c. (Poll :> es, Applicative (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es b -> Eff ff es (Maybe a, b)
+ Data.Effect.Concurrent.Parallel: cancelBy :: forall a b (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Poll :> es, Applicative (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es b -> Eff ff es (Maybe a, b)
- Data.Effect.Concurrent.Parallel: cancels :: forall a b es ff c. (Poll :> es, Applicative (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es b -> Eff ff es (a, Maybe b)
+ Data.Effect.Concurrent.Parallel: cancels :: forall a b (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Poll :> es, Applicative (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es b -> Eff ff es (a, Maybe b)
- Data.Effect.Concurrent.Parallel: data For (t :: Type -> Type) :: Effect
+ Data.Effect.Concurrent.Parallel: data For (t :: Type -> Type) (a :: Type -> Type) b
- Data.Effect.Concurrent.Parallel: data Halt :: Effect
+ Data.Effect.Concurrent.Parallel: data Halt (a :: Type -> Type) b
- Data.Effect.Concurrent.Parallel: data Parallel :: Effect
+ Data.Effect.Concurrent.Parallel: data Parallel (a :: Type -> Type) b
- Data.Effect.Concurrent.Parallel: data Poll :: Effect
+ Data.Effect.Concurrent.Parallel: data Poll (a :: Type -> Type) b
- Data.Effect.Concurrent.Parallel: data Race :: Effect
+ Data.Effect.Concurrent.Parallel: data Race (a :: Type -> Type) b
- Data.Effect.Concurrent.Parallel: for :: forall (t_atvC :: Type -> Type) (a_X0 :: Type) f_atvD es_atN9 ff_atN8 c_atNa. (Free c_atNa ff_atN8, f_atvD ~ Eff ff_atN8 es_atN9, (:>) (For t_atvC) es_atN9) => t_atvC (f_atvD a_X0) -> f_atvD (t_atvC a_X0)
+ Data.Effect.Concurrent.Parallel: for :: forall t a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, For t :> es) => t (f a) -> f (t a)
- Data.Effect.Concurrent.Parallel: for' :: forall key_atNc (t_atvC :: Type -> Type) (a_X0 :: Type) f_atvD es_atNe ff_atNd c_atNf. (Free c_atNf ff_atNd, f_atvD ~ Eff ff_atNd es_atNe, Has key_atNc (For t_atvC) es_atNe) => t_atvC (f_atvD a_X0) -> f_atvD (t_atvC a_X0)
+ Data.Effect.Concurrent.Parallel: for' :: forall {k} (key :: k) t a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (For t) es) => t (f a) -> f (t a)
- Data.Effect.Concurrent.Parallel: for'' :: forall tag_atNh (t_atvC :: Type -> Type) (a_X0 :: Type) f_atvD es_atNj ff_atNi c_atNk. (Free c_atNk ff_atNi, f_atvD ~ Eff ff_atNi es_atNj, (:>) (Tagged tag_atNh (For t_atvC)) es_atNj) => t_atvC (f_atvD a_X0) -> f_atvD (t_atvC a_X0)
+ Data.Effect.Concurrent.Parallel: for'' :: forall {k} (tag :: k) t a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (For t) :> es) => t (f a) -> f (t a)
- Data.Effect.Concurrent.Parallel: for'_ :: forall (t_atvC :: Type -> Type) (a_X0 :: Type) f_atvD es_atNn ff_atNm c_atNo. (Free c_atNo ff_atNm, f_atvD ~ Eff ff_atNm es_atNn, In (For t_atvC) es_atNn) => t_atvC (f_atvD a_X0) -> f_atvD (t_atvC a_X0)
+ Data.Effect.Concurrent.Parallel: for'_ :: forall t a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (For t) es) => t (f a) -> f (t a)
- Data.Effect.Concurrent.Parallel: forToParallel :: forall t a es ff c. (Parallel :> es, Traversable t, Applicative (Eff ff es), Free c ff) => For t (Eff ff es) a -> Eff ff es a
+ Data.Effect.Concurrent.Parallel: forToParallel :: forall (t :: Type -> Type) a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Parallel :> es, Traversable t, Applicative (Eff ff es), Free c ff) => For t (Eff ff es) a -> Eff ff es a
- Data.Effect.Concurrent.Parallel: halt :: forall (a_asFN :: Type) f_asFM es_asHP ff_asHO c_asHQ. (Free c_asHQ ff_asHO, f_asFM ~ Eff ff_asHO es_asHP, (:>) Halt es_asHP) => f_asFM a_asFN
+ Data.Effect.Concurrent.Parallel: halt :: forall a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Halt :> es) => f a
- Data.Effect.Concurrent.Parallel: halt' :: forall key_asHR (a_asFN :: Type) f_asFM es_asHT ff_asHS c_asHU. (Free c_asHU ff_asHS, f_asFM ~ Eff ff_asHS es_asHT, Has key_asHR Halt es_asHT) => f_asFM a_asFN
+ Data.Effect.Concurrent.Parallel: halt' :: forall {k} (key :: k) a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key Halt es) => f a
- Data.Effect.Concurrent.Parallel: halt'' :: forall tag_asHV (a_asFN :: Type) f_asFM es_asHX ff_asHW c_asHY. (Free c_asHY ff_asHW, f_asFM ~ Eff ff_asHW es_asHX, (:>) (Tagged tag_asHV Halt) es_asHX) => f_asFM a_asFN
+ Data.Effect.Concurrent.Parallel: halt'' :: forall {k} (tag :: k) a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag Halt :> es) => f a
- Data.Effect.Concurrent.Parallel: halt'_ :: forall (a_asFN :: Type) f_asFM es_asI0 ff_asHZ c_asI1. (Free c_asI1 ff_asHZ, f_asFM ~ Eff ff_asHZ es_asI0, In Halt es_asI0) => f_asFM a_asFN
+ Data.Effect.Concurrent.Parallel: halt'_ :: forall a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In Halt es) => f a
- Data.Effect.Concurrent.Parallel: haltToIO :: MonadIO m => Halt ~~> m
+ Data.Effect.Concurrent.Parallel: haltToIO :: forall (m :: Type -> Type). MonadIO m => Halt ~~> m
- Data.Effect.Concurrent.Parallel: liftP2 :: forall (a_X0 :: Type) (b_X1 :: Type) (c_asFQ :: Type) f_asFR es_asT1 ff_asT0 c_asT2. (Free c_asT2 ff_asT0, f_asFR ~ Eff ff_asT0 es_asT1, (:>) Parallel es_asT1) => (a_X0 -> b_X1 -> c_asFQ) -> f_asFR a_X0 -> f_asFR b_X1 -> f_asFR c_asFQ
+ Data.Effect.Concurrent.Parallel: liftP2 :: forall a b c1 f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c2 :: (Type -> Type) -> Constraint). (Free c2 ff, f ~ Eff ff es, Parallel :> es) => (a -> b -> c1) -> f a -> f b -> f c1
- Data.Effect.Concurrent.Parallel: liftP2' :: forall key_asT6 (a_X0 :: Type) (b_X1 :: Type) (c_asFQ :: Type) f_asFR es_asT8 ff_asT7 c_asT9. (Free c_asT9 ff_asT7, f_asFR ~ Eff ff_asT7 es_asT8, Has key_asT6 Parallel es_asT8) => (a_X0 -> b_X1 -> c_asFQ) -> f_asFR a_X0 -> f_asFR b_X1 -> f_asFR c_asFQ
+ Data.Effect.Concurrent.Parallel: liftP2' :: forall {k} (key :: k) a b c1 f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c2 :: (Type -> Type) -> Constraint). (Free c2 ff, f ~ Eff ff es, Has key Parallel es) => (a -> b -> c1) -> f a -> f b -> f c1
- Data.Effect.Concurrent.Parallel: liftP2'' :: forall tag_asTd (a_X0 :: Type) (b_X1 :: Type) (c_asFQ :: Type) f_asFR es_asTf ff_asTe c_asTg. (Free c_asTg ff_asTe, f_asFR ~ Eff ff_asTe es_asTf, (:>) (Tagged tag_asTd Parallel) es_asTf) => (a_X0 -> b_X1 -> c_asFQ) -> f_asFR a_X0 -> f_asFR b_X1 -> f_asFR c_asFQ
+ Data.Effect.Concurrent.Parallel: liftP2'' :: forall {k} (tag :: k) a b c1 f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c2 :: (Type -> Type) -> Constraint). (Free c2 ff, f ~ Eff ff es, Tagged tag Parallel :> es) => (a -> b -> c1) -> f a -> f b -> f c1
- Data.Effect.Concurrent.Parallel: liftP2'_ :: forall (a_X0 :: Type) (b_X1 :: Type) (c_asFQ :: Type) f_asFR es_asTl ff_asTk c_asTm. (Free c_asTm ff_asTk, f_asFR ~ Eff ff_asTk es_asTl, In Parallel es_asTl) => (a_X0 -> b_X1 -> c_asFQ) -> f_asFR a_X0 -> f_asFR b_X1 -> f_asFR c_asFQ
+ Data.Effect.Concurrent.Parallel: liftP2'_ :: forall a b c1 f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c2 :: (Type -> Type) -> Constraint). (Free c2 ff, f ~ Eff ff es, In Parallel es) => (a -> b -> c1) -> f a -> f b -> f c1
- Data.Effect.Concurrent.Parallel: liftP3 :: forall a b c d es ff con. (Parallel :> es, Free con ff) => (a -> b -> c -> d) -> Eff ff es a -> Eff ff es b -> Eff ff es c -> Eff ff es d
+ Data.Effect.Concurrent.Parallel: liftP3 :: forall a b c d (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (con :: (Type -> Type) -> Constraint). (Parallel :> es, Free con ff) => (a -> b -> c -> d) -> Eff ff es a -> Eff ff es b -> Eff ff es c -> Eff ff es d
- Data.Effect.Concurrent.Parallel: newtype Concurrently ff es a
+ Data.Effect.Concurrent.Parallel: newtype Concurrently (ff :: Type -> Type -> Type -> Type) (es :: [Effect]) a
- Data.Effect.Concurrent.Parallel: parallelToIO :: MonadUnliftIO m => Parallel ~~> m
+ Data.Effect.Concurrent.Parallel: parallelToIO :: forall (m :: Type -> Type). MonadUnliftIO m => Parallel ~~> m
- Data.Effect.Concurrent.Parallel: parallelToSequential :: Applicative (Eff ff es) => Parallel ~~> Eff ff es
+ Data.Effect.Concurrent.Parallel: parallelToSequential :: forall (ff :: (Type -> Type) -> Type -> Type) (es :: [Effect]). Applicative (Eff ff es) => Parallel ~~> Eff ff es
- Data.Effect.Concurrent.Parallel: poldl :: forall (a_X0 :: Type) (b_X1 :: Type) (r_asUe :: Type) f_asUd es_atuX ff_atuW c_atuY. (Free c_atuY ff_atuW, f_asUd ~ Eff ff_atuW es_atuX, (:>) Poll es_atuX) => (a_X0 -> Maybe b_X1 -> f_asUd (Either r_asUe a_X0)) -> f_asUd a_X0 -> f_asUd b_X1 -> f_asUd r_asUe
+ Data.Effect.Concurrent.Parallel: poldl :: forall a b r f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Poll :> es) => (a -> Maybe b -> f (Either r a)) -> f a -> f b -> f r
- Data.Effect.Concurrent.Parallel: poldl' :: forall key_atv2 (a_X0 :: Type) (b_X1 :: Type) (r_asUe :: Type) f_asUd es_atv4 ff_atv3 c_atv5. (Free c_atv5 ff_atv3, f_asUd ~ Eff ff_atv3 es_atv4, Has key_atv2 Poll es_atv4) => (a_X0 -> Maybe b_X1 -> f_asUd (Either r_asUe a_X0)) -> f_asUd a_X0 -> f_asUd b_X1 -> f_asUd r_asUe
+ Data.Effect.Concurrent.Parallel: poldl' :: forall {k} (key :: k) a b r f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key Poll es) => (a -> Maybe b -> f (Either r a)) -> f a -> f b -> f r
- Data.Effect.Concurrent.Parallel: poldl'' :: forall tag_atv9 (a_X0 :: Type) (b_X1 :: Type) (r_asUe :: Type) f_asUd es_atvb ff_atva c_atvc. (Free c_atvc ff_atva, f_asUd ~ Eff ff_atva es_atvb, (:>) (Tagged tag_atv9 Poll) es_atvb) => (a_X0 -> Maybe b_X1 -> f_asUd (Either r_asUe a_X0)) -> f_asUd a_X0 -> f_asUd b_X1 -> f_asUd r_asUe
+ Data.Effect.Concurrent.Parallel: poldl'' :: forall {k} (tag :: k) a b r f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag Poll :> es) => (a -> Maybe b -> f (Either r a)) -> f a -> f b -> f r
- Data.Effect.Concurrent.Parallel: poldl'_ :: forall (a_X0 :: Type) (b_X1 :: Type) (r_asUe :: Type) f_asUd es_atvh ff_atvg c_atvi. (Free c_atvi ff_atvg, f_asUd ~ Eff ff_atvg es_atvh, In Poll es_atvh) => (a_X0 -> Maybe b_X1 -> f_asUd (Either r_asUe a_X0)) -> f_asUd a_X0 -> f_asUd b_X1 -> f_asUd r_asUe
+ Data.Effect.Concurrent.Parallel: poldl'_ :: forall a b r f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In Poll es) => (a -> Maybe b -> f (Either r a)) -> f a -> f b -> f r
- Data.Effect.Concurrent.Parallel: pollToIO :: MonadUnliftIO m => Poll ~~> m
+ Data.Effect.Concurrent.Parallel: pollToIO :: forall (m :: Type -> Type). MonadUnliftIO m => Poll ~~> m
- Data.Effect.Concurrent.Parallel: race :: forall (a_asFL :: Type) f_asFK es_asTx ff_asTw c_asTy. (Free c_asTy ff_asTw, f_asFK ~ Eff ff_asTw es_asTx, (:>) Race es_asTx) => f_asFK a_asFL -> f_asFK a_asFL -> f_asFK a_asFL
+ Data.Effect.Concurrent.Parallel: race :: forall a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Race :> es) => f a -> f a -> f a
- Data.Effect.Concurrent.Parallel: race' :: forall key_asTB (a_asFL :: Type) f_asFK es_asTD ff_asTC c_asTE. (Free c_asTE ff_asTC, f_asFK ~ Eff ff_asTC es_asTD, Has key_asTB Race es_asTD) => f_asFK a_asFL -> f_asFK a_asFL -> f_asFK a_asFL
+ Data.Effect.Concurrent.Parallel: race' :: forall {k} (key :: k) a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key Race es) => f a -> f a -> f a
- Data.Effect.Concurrent.Parallel: race'' :: forall tag_asTH (a_asFL :: Type) f_asFK es_asTJ ff_asTI c_asTK. (Free c_asTK ff_asTI, f_asFK ~ Eff ff_asTI es_asTJ, (:>) (Tagged tag_asTH Race) es_asTJ) => f_asFK a_asFL -> f_asFK a_asFL -> f_asFK a_asFL
+ Data.Effect.Concurrent.Parallel: race'' :: forall {k} (tag :: k) a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag Race :> es) => f a -> f a -> f a
- Data.Effect.Concurrent.Parallel: race'_ :: forall (a_asFL :: Type) f_asFK es_asTO ff_asTN c_asTP. (Free c_asTP ff_asTN, f_asFK ~ Eff ff_asTN es_asTO, In Race es_asTO) => f_asFK a_asFL -> f_asFK a_asFL -> f_asFK a_asFL
+ Data.Effect.Concurrent.Parallel: race'_ :: forall a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In Race es) => f a -> f a -> f a
- Data.Effect.Concurrent.Parallel: raceToIO :: MonadUnliftIO m => Race ~~> m
+ Data.Effect.Concurrent.Parallel: raceToIO :: forall (m :: Type -> Type). MonadUnliftIO m => Race ~~> m
- Data.Effect.Concurrent.Parallel: runConcurrentIO :: forall a es ff c. (UnliftIO :> es, Emb IO :> es, forall es'. Monad (Eff ff es'), Free c ff) => Eff ff (Parallel ': (Race ': (Poll ': (Halt ': es)))) a -> Eff ff es a
+ Data.Effect.Concurrent.Parallel: runConcurrentIO :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (UnliftIO :> es, Emb IO :> es, forall (es' :: [Effect]). () => Monad (Eff ff es'), Free c ff) => Eff ff (Parallel ': (Race ': (Poll ': (Halt ': es)))) a -> Eff ff es a
- Data.Effect.Concurrent.Parallel: runForAsParallel :: forall t a es ff c. (Parallel :> es, Traversable t, Applicative (Eff ff es), Free c ff) => Eff ff (For t ': es) a -> Eff ff es a
+ Data.Effect.Concurrent.Parallel: runForAsParallel :: forall (t :: Type -> Type) a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Parallel :> es, Traversable t, Applicative (Eff ff es), Free c ff) => Eff ff (For t ': es) a -> Eff ff es a
- Data.Effect.Concurrent.Parallel: runHaltIO :: forall a es ff c. (Emb IO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Halt ': es) a -> Eff ff es a
+ Data.Effect.Concurrent.Parallel: runHaltIO :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Emb IO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Halt ': es) a -> Eff ff es a
- Data.Effect.Concurrent.Parallel: runParallelAsSequential :: forall a es ff c. (Applicative (Eff ff es), Free c ff) => Eff ff (Parallel ': es) a -> Eff ff es a
+ Data.Effect.Concurrent.Parallel: runParallelAsSequential :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Applicative (Eff ff es), Free c ff) => Eff ff (Parallel ': es) a -> Eff ff es a
- Data.Effect.Concurrent.Parallel: runParallelIO :: forall a es ff c. (UnliftIO :> es, Emb IO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Parallel ': es) a -> Eff ff es a
+ Data.Effect.Concurrent.Parallel: runParallelIO :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (UnliftIO :> es, Emb IO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Parallel ': es) a -> Eff ff es a
- Data.Effect.Concurrent.Parallel: runPollIO :: forall a es ff c. (Emb IO :> es, UnliftIO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Poll ': es) a -> Eff ff es a
+ Data.Effect.Concurrent.Parallel: runPollIO :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Emb IO :> es, UnliftIO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Poll ': es) a -> Eff ff es a
- Data.Effect.Concurrent.Parallel: runRaceIO :: forall a es ff c. (Emb IO :> es, UnliftIO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Race ': es) a -> Eff ff es a
+ Data.Effect.Concurrent.Parallel: runRaceIO :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Emb IO :> es, UnliftIO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Race ': es) a -> Eff ff es a
- Data.Effect.Concurrent.Timer: [Clock] :: Timer f DiffTime
+ Data.Effect.Concurrent.Timer: [Clock] :: forall (a :: Type -> Type). Timer a DiffTime
- Data.Effect.Concurrent.Timer: [Sleep] :: DiffTime -> Timer f ()
+ Data.Effect.Concurrent.Timer: [Sleep] :: forall (a :: Type -> Type). DiffTime -> Timer a ()
- Data.Effect.Concurrent.Timer: [Wait] :: DiffTime -> CyclicTimer f ()
+ Data.Effect.Concurrent.Timer: [Wait] :: forall (a :: Type -> Type). DiffTime -> CyclicTimer a ()
- Data.Effect.Concurrent.Timer: clock :: forall f_arE6 es_arGv ff_arGu c_arGw. (Free c_arGw ff_arGu, f_arE6 ~ Eff ff_arGu es_arGv, (:>) Timer es_arGv) => f_arE6 DiffTime
+ Data.Effect.Concurrent.Timer: clock :: forall f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Timer :> es) => f DiffTime
- Data.Effect.Concurrent.Timer: clock' :: forall key_arGx f_arE6 es_arGz ff_arGy c_arGA. (Free c_arGA ff_arGy, f_arE6 ~ Eff ff_arGy es_arGz, Has key_arGx Timer es_arGz) => f_arE6 DiffTime
+ Data.Effect.Concurrent.Timer: clock' :: forall {k} (key :: k) f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key Timer es) => f DiffTime
- Data.Effect.Concurrent.Timer: clock'' :: forall tag_arGB f_arE6 es_arGD ff_arGC c_arGE. (Free c_arGE ff_arGC, f_arE6 ~ Eff ff_arGC es_arGD, (:>) (Tagged tag_arGB Timer) es_arGD) => f_arE6 DiffTime
+ Data.Effect.Concurrent.Timer: clock'' :: forall {k} (tag :: k) f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag Timer :> es) => f DiffTime
- Data.Effect.Concurrent.Timer: clock'_ :: forall f_arE6 es_arGG ff_arGF c_arGH. (Free c_arGH ff_arGF, f_arE6 ~ Eff ff_arGF es_arGG, In Timer es_arGG) => f_arE6 DiffTime
+ Data.Effect.Concurrent.Timer: clock'_ :: forall f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In Timer es) => f DiffTime
- Data.Effect.Concurrent.Timer: cyclicTimer :: forall a es ff c. (Timer :> es, Yield () DiffTime :> es, Monad (Eff ff es), Free c ff) => Eff ff es a
+ Data.Effect.Concurrent.Timer: cyclicTimer :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Timer :> es, Yield () DiffTime :> es, Monad (Eff ff es), Free c ff) => Eff ff es a
- Data.Effect.Concurrent.Timer: data CyclicTimer :: Effect
+ Data.Effect.Concurrent.Timer: data CyclicTimer (a :: Type -> Type) b
- Data.Effect.Concurrent.Timer: data Timer :: Effect
+ Data.Effect.Concurrent.Timer: data Timer (a :: Type -> Type) b
- Data.Effect.Concurrent.Timer: measureTime :: forall a es ff c. (Timer :> es, Monad (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es (DiffTime, a)
+ Data.Effect.Concurrent.Timer: measureTime :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Timer :> es, Monad (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es (DiffTime, a)
- Data.Effect.Concurrent.Timer: periodicTimer :: forall a es ff c. (Timer :> es, Yield () () :> es, Monad (Eff ff es), Free c ff) => DiffTime -> Eff ff es a
+ Data.Effect.Concurrent.Timer: periodicTimer :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Timer :> es, Yield () () :> es, Monad (Eff ff es), Free c ff) => DiffTime -> Eff ff es a
- Data.Effect.Concurrent.Timer: restartClock :: forall a ff es c. (Timer :> es, Monad (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es a
+ Data.Effect.Concurrent.Timer: restartClock :: forall a (ff :: (Type -> Type) -> Type -> Type) (es :: [Effect]) (c :: (Type -> Type) -> Constraint). (Timer :> es, Monad (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es a
- Data.Effect.Concurrent.Timer: runCyclic :: forall a es ff c. (Timer :> es, Monad (Eff ff es), Free c ff) => Eff ff es DiffTime -> Eff ff es () -> Eff ff es a
+ Data.Effect.Concurrent.Timer: runCyclic :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Timer :> es, Monad (Eff ff es), Free c ff) => Eff ff es DiffTime -> Eff ff es () -> Eff ff es a
- Data.Effect.Concurrent.Timer: runPeriodic :: forall a es ff c. (Timer :> es, Monad (Eff ff es), Free c ff) => DiffTime -> Eff ff es () -> Eff ff es a
+ Data.Effect.Concurrent.Timer: runPeriodic :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Timer :> es, Monad (Eff ff es), Free c ff) => DiffTime -> Eff ff es () -> Eff ff es a
- Data.Effect.Concurrent.Timer: runTimerIO :: forall a ff es c. (Emb IO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Timer ': es) a -> Eff ff es a
+ Data.Effect.Concurrent.Timer: runTimerIO :: forall a (ff :: (Type -> Type) -> Type -> Type) (es :: [Effect]) (c :: (Type -> Type) -> Constraint). (Emb IO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Timer ': es) a -> Eff ff es a
- Data.Effect.Concurrent.Timer: sleep :: forall f_arFG es_arGJ ff_arGI c_arGK. (Free c_arGK ff_arGI, f_arFG ~ Eff ff_arGI es_arGJ, (:>) Timer es_arGJ) => DiffTime -> f_arFG ()
+ Data.Effect.Concurrent.Timer: sleep :: forall f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Timer :> es) => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: sleep' :: forall key_arGM f_arFG es_arGO ff_arGN c_arGP. (Free c_arGP ff_arGN, f_arFG ~ Eff ff_arGN es_arGO, Has key_arGM Timer es_arGO) => DiffTime -> f_arFG ()
+ Data.Effect.Concurrent.Timer: sleep' :: forall {k} (key :: k) f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key Timer es) => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: sleep'' :: forall tag_arGR f_arFG es_arGT ff_arGS c_arGU. (Free c_arGU ff_arGS, f_arFG ~ Eff ff_arGS es_arGT, (:>) (Tagged tag_arGR Timer) es_arGT) => DiffTime -> f_arFG ()
+ Data.Effect.Concurrent.Timer: sleep'' :: forall {k} (tag :: k) f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag Timer :> es) => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: sleep'_ :: forall f_arFG es_arGX ff_arGW c_arGY. (Free c_arGY ff_arGW, f_arFG ~ Eff ff_arGW es_arGX, In Timer es_arGX) => DiffTime -> f_arFG ()
+ Data.Effect.Concurrent.Timer: sleep'_ :: forall f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In Timer es) => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: sleepUntil :: forall es ff c. (Timer :> es, Monad (Eff ff es), Free c ff) => DiffTime -> Eff ff es (Maybe DiffTime)
+ Data.Effect.Concurrent.Timer: sleepUntil :: forall (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Timer :> es, Monad (Eff ff es), Free c ff) => DiffTime -> Eff ff es (Maybe DiffTime)
- Data.Effect.Concurrent.Timer: wait :: forall f_arHk es_asj2 ff_asj1 c_asj3. (Free c_asj3 ff_asj1, f_arHk ~ Eff ff_asj1 es_asj2, (:>) CyclicTimer es_asj2) => DiffTime -> f_arHk ()
+ Data.Effect.Concurrent.Timer: wait :: forall f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, CyclicTimer :> es) => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: wait' :: forall key_asj5 f_arHk es_asj7 ff_asj6 c_asj8. (Free c_asj8 ff_asj6, f_arHk ~ Eff ff_asj6 es_asj7, Has key_asj5 CyclicTimer es_asj7) => DiffTime -> f_arHk ()
+ Data.Effect.Concurrent.Timer: wait' :: forall {k} (key :: k) f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key CyclicTimer es) => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: wait'' :: forall tag_asja f_arHk es_asjc ff_asjb c_asjd. (Free c_asjd ff_asjb, f_arHk ~ Eff ff_asjb es_asjc, (:>) (Tagged tag_asja CyclicTimer) es_asjc) => DiffTime -> f_arHk ()
+ Data.Effect.Concurrent.Timer: wait'' :: forall {k} (tag :: k) f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag CyclicTimer :> es) => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: wait'_ :: forall f_arHk es_asjg ff_asjf c_asjh. (Free c_asjh ff_asjf, f_arHk ~ Eff ff_asjf es_asjg, In CyclicTimer es_asjg) => DiffTime -> f_arHk ()
+ Data.Effect.Concurrent.Timer: wait'_ :: forall f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In CyclicTimer es) => DiffTime -> f ()
- Data.Effect.Concurrent.Timer: withElapsedTime :: forall a es ff c. (Timer :> es, Monad (Eff ff es), Free c ff) => (Eff ff es DiffTime -> Eff ff es a) -> Eff ff es a
+ Data.Effect.Concurrent.Timer: withElapsedTime :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Timer :> es, Monad (Eff ff es), Free c ff) => (Eff ff es DiffTime -> Eff ff es a) -> Eff ff es a
- Data.Effect.Coroutine: Continue :: a -> (b -> f (Status f a b r)) -> Status f a b r
+ Data.Effect.Coroutine: Continue :: a -> (b -> f (Status f a b r)) -> Status (f :: Type -> Type) a b r
- 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 f b
+ Data.Effect.Coroutine: [Yield] :: forall a b (c :: Type -> Type). a -> Yield a b c 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 :: Effect
+ Data.Effect.Coroutine: data Yield a b (c :: Type -> Type) d
- Data.Effect.Coroutine: inputToYield :: Input i f a -> Yield () i f a
+ Data.Effect.Coroutine: inputToYield :: forall i (f :: Type -> Type) a. Input i f a -> Yield () i f a
- Data.Effect.Coroutine: outputToYield :: Output o f a -> Yield o () f a
+ Data.Effect.Coroutine: outputToYield :: forall o (f :: Type -> Type) a. Output o f a -> Yield o () f a
- Data.Effect.Coroutine: yield :: forall (a_aqUa :: Type) (b_aqUb :: Type) f_aqUc es_aqV0 ff_aqUZ c_aqV1. (Free c_aqV1 ff_aqUZ, f_aqUc ~ Eff ff_aqUZ es_aqV0, (:>) (Yield a_aqUa b_aqUb) es_aqV0) => a_aqUa -> f_aqUc b_aqUb
+ Data.Effect.Coroutine: yield :: forall a b f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Yield a b :> es) => a -> f b
- Data.Effect.Coroutine: yield' :: forall key_aqV3 (a_aqUa :: Type) (b_aqUb :: Type) f_aqUc es_aqV5 ff_aqV4 c_aqV6. (Free c_aqV6 ff_aqV4, f_aqUc ~ Eff ff_aqV4 es_aqV5, Has key_aqV3 (Yield a_aqUa b_aqUb) es_aqV5) => a_aqUa -> f_aqUc b_aqUb
+ Data.Effect.Coroutine: yield' :: forall {k} (key :: k) a b f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Yield a b) es) => a -> f b
- Data.Effect.Coroutine: yield'' :: forall tag_aqV8 (a_aqUa :: Type) (b_aqUb :: Type) f_aqUc es_aqVa ff_aqV9 c_aqVb. (Free c_aqVb ff_aqV9, f_aqUc ~ Eff ff_aqV9 es_aqVa, (:>) (Tagged tag_aqV8 (Yield a_aqUa b_aqUb)) es_aqVa) => a_aqUa -> f_aqUc b_aqUb
+ Data.Effect.Coroutine: yield'' :: forall {k} (tag :: k) a b f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Yield a b) :> es) => a -> f b
- Data.Effect.Coroutine: yield'_ :: forall (a_aqUa :: Type) (b_aqUb :: Type) f_aqUc es_aqVe ff_aqVd c_aqVf. (Free c_aqVf ff_aqVd, f_aqUc ~ Eff ff_aqVd es_aqVe, In (Yield a_aqUa b_aqUb) es_aqVe) => a_aqUa -> f_aqUc b_aqUb
+ Data.Effect.Coroutine: yield'_ :: forall a b f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Yield a b) es) => a -> f b
- Data.Effect.Except: catch :: forall (b_apjd :: Type) (e_apjb :: Type) a_apjc es_apji ff_apjh c_apjj. (Free c_apjj ff_apjh, a_apjc ~ Eff ff_apjh es_apji, (:>) (Catch e_apjb) es_apji) => a_apjc b_apjd -> (e_apjb -> a_apjc b_apjd) -> a_apjc b_apjd
+ Data.Effect.Except: catch :: forall b e a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Catch e :> es) => a b -> (e -> a b) -> a b
- Data.Effect.Except: catch' :: forall key_apjm (b_apjd :: Type) (e_apjb :: Type) a_apjc es_apjo ff_apjn c_apjp. (Free c_apjp ff_apjn, a_apjc ~ Eff ff_apjn es_apjo, Has key_apjm (Catch e_apjb) es_apjo) => a_apjc b_apjd -> (e_apjb -> a_apjc b_apjd) -> a_apjc b_apjd
+ Data.Effect.Except: catch' :: forall {k} (key :: k) b e a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key (Catch e) es) => a b -> (e -> a b) -> a b
- Data.Effect.Except: catch'' :: forall tag_apjs (b_apjd :: Type) (e_apjb :: Type) a_apjc es_apju ff_apjt c_apjv. (Free c_apjv ff_apjt, a_apjc ~ Eff ff_apjt es_apju, (:>) (Tagged tag_apjs (Catch e_apjb)) es_apju) => a_apjc b_apjd -> (e_apjb -> a_apjc b_apjd) -> a_apjc b_apjd
+ Data.Effect.Except: catch'' :: forall {k} (tag :: k) b e a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag (Catch e) :> es) => a b -> (e -> a b) -> a b
- Data.Effect.Except: catch'_ :: forall (b_apjd :: Type) (e_apjb :: Type) a_apjc es_apjz ff_apjy c_apjA. (Free c_apjA ff_apjy, a_apjc ~ Eff ff_apjy es_apjz, In (Catch e_apjb) es_apjz) => a_apjc b_apjd -> (e_apjb -> a_apjc b_apjd) -> a_apjc b_apjd
+ Data.Effect.Except: catch'_ :: forall b e a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In (Catch e) es) => a b -> (e -> a b) -> a b
- Data.Effect.Except: data () => Catch e (a :: Type -> Type) b
+ Data.Effect.Except: data Catch e (a :: Type -> Type) b
- Data.Effect.Except: data () => Throw e (a :: Type -> Type) b
+ Data.Effect.Except: data Throw e (a :: Type -> Type) b
- Data.Effect.Except: joinEither :: forall e es a ff c. (Throw e :> es, Monad (Eff ff es), Free c ff) => Eff ff es (Either e a) -> Eff ff es a
+ Data.Effect.Except: joinEither :: forall e (es :: [Effect]) a (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Throw e :> es, Monad (Eff ff es), Free c ff) => Eff ff es (Either e a) -> Eff ff es a
- Data.Effect.Except: liftEither :: forall e es a ff c. (Throw e :> es, Applicative (Eff ff es), Free c ff) => Either e a -> Eff ff es a
+ Data.Effect.Except: liftEither :: forall e (es :: [Effect]) a (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Throw e :> es, Applicative (Eff ff es), Free c ff) => Either e a -> Eff ff es a
- Data.Effect.Except: onExcept :: forall e es ff a c. (Catch e :> es, Throw e :> es, Applicative (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es () -> Eff ff es a
+ Data.Effect.Except: onExcept :: forall e (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (Catch e :> es, Throw e :> es, Applicative (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es () -> Eff ff es a
- Data.Effect.Except: runCatchIO :: forall e es ff a c. (UnliftIO :> es, Emb IO :> es, Exception e, Monad (Eff ff es), Free c ff) => Eff ff (Catch e ': es) a -> Eff ff es a
+ Data.Effect.Except: runCatchIO :: forall e (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (UnliftIO :> es, Emb IO :> es, Exception e, Monad (Eff ff es), Free c ff) => Eff ff (Catch e ': es) a -> Eff ff es a
- Data.Effect.Except: runThrowIO :: forall e es ff a c. (Emb IO :> es, Exception e, Monad (Eff ff es), Free c ff) => Eff ff (Throw e ': es) a -> Eff ff es a
+ Data.Effect.Except: runThrowIO :: forall e (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (Emb IO :> es, Exception e, Monad (Eff ff es), Free c ff) => Eff ff (Throw e ': es) a -> Eff ff es a
- Data.Effect.Except: throw :: forall (e_ap86 :: Type) (b_ap88 :: Type) a_ap87 es_ap8e ff_ap8d c_ap8f. (Free c_ap8f ff_ap8d, a_ap87 ~ Eff ff_ap8d es_ap8e, (:>) (Throw e_ap86) es_ap8e) => e_ap86 -> a_ap87 b_ap88
+ Data.Effect.Except: throw :: forall e b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Throw e :> es) => e -> a b
- Data.Effect.Except: throw' :: forall key_ap8h (e_ap86 :: Type) (b_ap88 :: Type) a_ap87 es_ap8j ff_ap8i c_ap8k. (Free c_ap8k ff_ap8i, a_ap87 ~ Eff ff_ap8i es_ap8j, Has key_ap8h (Throw e_ap86) es_ap8j) => e_ap86 -> a_ap87 b_ap88
+ Data.Effect.Except: throw' :: forall {k} (key :: k) e b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key (Throw e) es) => e -> a b
- Data.Effect.Except: throw'' :: forall tag_ap8m (e_ap86 :: Type) (b_ap88 :: Type) a_ap87 es_ap8o ff_ap8n c_ap8p. (Free c_ap8p ff_ap8n, a_ap87 ~ Eff ff_ap8n es_ap8o, (:>) (Tagged tag_ap8m (Throw e_ap86)) es_ap8o) => e_ap86 -> a_ap87 b_ap88
+ Data.Effect.Except: throw'' :: forall {k} (tag :: k) e b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag (Throw e) :> es) => e -> a b
- Data.Effect.Except: throw'_ :: forall (e_ap86 :: Type) (b_ap88 :: Type) a_ap87 es_ap8s ff_ap8r c_ap8t. (Free c_ap8t ff_ap8r, a_ap87 ~ Eff ff_ap8r es_ap8s, In (Throw e_ap86) es_ap8s) => e_ap86 -> a_ap87 b_ap88
+ Data.Effect.Except: throw'_ :: forall e b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In (Throw e) es) => e -> a b
- Data.Effect.Except: withExcept :: forall e es a ff c. (Catch e :> es, Throw e :> es, Applicative (Eff ff es), Free c ff) => Eff ff es a -> (e -> Eff ff es ()) -> Eff ff es a
+ Data.Effect.Except: withExcept :: forall e (es :: [Effect]) a (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Catch e :> es, Throw e :> es, Applicative (Eff ff es), Free c ff) => Eff ff es a -> (e -> Eff ff es ()) -> Eff ff es a
- Data.Effect.Fail: data () => Fail (a :: Type -> Type) b
+ Data.Effect.Fail: data Fail (a :: Type -> Type) b
- Data.Effect.Fail: fail :: forall (b_aoV4 :: Type) a_aoV3 es_aoV9 ff_aoV8 c_aoVa. (Free c_aoVa ff_aoV8, a_aoV3 ~ Eff ff_aoV8 es_aoV9, (:>) Fail es_aoV9) => String -> a_aoV3 b_aoV4
+ Data.Effect.Fail: fail :: forall b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Fail :> es) => String -> a b
- Data.Effect.Fail: fail' :: forall key_aoVc (b_aoV4 :: Type) a_aoV3 es_aoVe ff_aoVd c_aoVf. (Free c_aoVf ff_aoVd, a_aoV3 ~ Eff ff_aoVd es_aoVe, Has key_aoVc Fail es_aoVe) => String -> a_aoV3 b_aoV4
+ Data.Effect.Fail: fail' :: forall {k} (key :: k) b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key Fail es) => String -> a b
- Data.Effect.Fail: fail'' :: forall tag_aoVh (b_aoV4 :: Type) a_aoV3 es_aoVj ff_aoVi c_aoVk. (Free c_aoVk ff_aoVi, a_aoV3 ~ Eff ff_aoVi es_aoVj, (:>) (Tagged tag_aoVh Fail) es_aoVj) => String -> a_aoV3 b_aoV4
+ Data.Effect.Fail: fail'' :: forall {k} (tag :: k) b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag Fail :> es) => String -> a b
- Data.Effect.Fail: fail'_ :: forall (b_aoV4 :: Type) a_aoV3 es_aoVn ff_aoVm c_aoVo. (Free c_aoVo ff_aoVm, a_aoV3 ~ Eff ff_aoVm es_aoVn, In Fail es_aoVn) => String -> a_aoV3 b_aoV4
+ Data.Effect.Fail: fail'_ :: forall b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In Fail es) => String -> a b
- Data.Effect.Fail: runFailIO :: forall es a ff c. (Emb IO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Fail ': es) a -> Eff ff es a
+ Data.Effect.Fail: runFailIO :: forall (es :: [Effect]) a (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Emb IO :> es, Monad (Eff ff es), Free c ff) => Eff ff (Fail ': es) a -> Eff ff es a
- Data.Effect.Fix: data () => Fix (a :: Type -> Type) b
+ Data.Effect.Fix: data Fix (a :: Type -> Type) b
- Data.Effect.Fix: efix :: forall (b_aoK8 :: Type) a_aoK7 es_aoKc ff_aoKb c_aoKd. (Free c_aoKd ff_aoKb, a_aoK7 ~ Eff ff_aoKb es_aoKc, (:>) Fix es_aoKc) => (b_aoK8 -> a_aoK7 b_aoK8) -> a_aoK7 b_aoK8
+ Data.Effect.Fix: efix :: forall b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Fix :> es) => (b -> a b) -> a b
- Data.Effect.Fix: efix' :: forall key_aoKf (b_aoK8 :: Type) a_aoK7 es_aoKh ff_aoKg c_aoKi. (Free c_aoKi ff_aoKg, a_aoK7 ~ Eff ff_aoKg es_aoKh, Has key_aoKf Fix es_aoKh) => (b_aoK8 -> a_aoK7 b_aoK8) -> a_aoK7 b_aoK8
+ Data.Effect.Fix: efix' :: forall {k} (key :: k) b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key Fix es) => (b -> a b) -> a b
- Data.Effect.Fix: efix'' :: forall tag_aoKk (b_aoK8 :: Type) a_aoK7 es_aoKm ff_aoKl c_aoKn. (Free c_aoKn ff_aoKl, a_aoK7 ~ Eff ff_aoKl es_aoKm, (:>) (Tagged tag_aoKk Fix) es_aoKm) => (b_aoK8 -> a_aoK7 b_aoK8) -> a_aoK7 b_aoK8
+ Data.Effect.Fix: efix'' :: forall {k} (tag :: k) b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag Fix :> es) => (b -> a b) -> a b
- Data.Effect.Fix: efix'_ :: forall (b_aoK8 :: Type) a_aoK7 es_aoKq ff_aoKp c_aoKr. (Free c_aoKr ff_aoKp, a_aoK7 ~ Eff ff_aoKp es_aoKq, In Fix es_aoKq) => (b_aoK8 -> a_aoK7 b_aoK8) -> a_aoK7 b_aoK8
+ Data.Effect.Fix: efix'_ :: forall b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In Fix es) => (b -> a b) -> a b
- Data.Effect.Fresh: [Fresh] :: Fresh i f i
+ Data.Effect.Fresh: [Fresh] :: forall i (a :: Type -> Type). Fresh i a i
- Data.Effect.Fresh: data Fresh i :: Effect
+ Data.Effect.Fresh: data Fresh i (a :: Type -> Type) b
- Data.Effect.Fresh: fresh :: forall (i_aoxO :: Type) f_aoxP es_aoyt ff_aoys c_aoyu. (Free c_aoyu ff_aoys, f_aoxP ~ Eff ff_aoys es_aoyt, (:>) (Fresh i_aoxO) es_aoyt) => f_aoxP i_aoxO
+ Data.Effect.Fresh: fresh :: forall i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Fresh i :> es) => f i
- Data.Effect.Fresh: fresh' :: forall key_aoyv (i_aoxO :: Type) f_aoxP es_aoyx ff_aoyw c_aoyy. (Free c_aoyy ff_aoyw, f_aoxP ~ Eff ff_aoyw es_aoyx, Has key_aoyv (Fresh i_aoxO) es_aoyx) => f_aoxP i_aoxO
+ Data.Effect.Fresh: fresh' :: forall {k} (key :: k) i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Fresh i) es) => f i
- Data.Effect.Fresh: fresh'' :: forall tag_aoyz (i_aoxO :: Type) f_aoxP es_aoyB ff_aoyA c_aoyC. (Free c_aoyC ff_aoyA, f_aoxP ~ Eff ff_aoyA es_aoyB, (:>) (Tagged tag_aoyz (Fresh i_aoxO)) es_aoyB) => f_aoxP i_aoxO
+ Data.Effect.Fresh: fresh'' :: forall {k} (tag :: k) i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Fresh i) :> es) => f i
- Data.Effect.Fresh: fresh'_ :: forall (i_aoxO :: Type) f_aoxP es_aoyE ff_aoyD c_aoyF. (Free c_aoyF ff_aoyD, f_aoxP ~ Eff ff_aoyD es_aoyE, In (Fresh i_aoxO) es_aoyE) => f_aoxP i_aoxO
+ Data.Effect.Fresh: fresh'_ :: forall i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Fresh i) es) => f i
- Data.Effect.Input: [Input] :: Input i f i
+ Data.Effect.Input: [Input] :: forall i (a :: Type -> Type). Input i a i
- Data.Effect.Input: data Input i :: Effect
+ Data.Effect.Input: data Input i (a :: Type -> Type) b
- Data.Effect.Input: input :: forall (i_ao79 :: Type) f_ao7a es_ao7O ff_ao7N c_ao7P. (Free c_ao7P ff_ao7N, f_ao7a ~ Eff ff_ao7N es_ao7O, (:>) (Input i_ao79) es_ao7O) => f_ao7a i_ao79
+ Data.Effect.Input: input :: forall i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Input i :> es) => f i
- Data.Effect.Input: input' :: forall key_ao7Q (i_ao79 :: Type) f_ao7a es_ao7S ff_ao7R c_ao7T. (Free c_ao7T ff_ao7R, f_ao7a ~ Eff ff_ao7R es_ao7S, Has key_ao7Q (Input i_ao79) es_ao7S) => f_ao7a i_ao79
+ Data.Effect.Input: input' :: forall {k} (key :: k) i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Input i) es) => f i
- Data.Effect.Input: input'' :: forall tag_ao7U (i_ao79 :: Type) f_ao7a es_ao7W ff_ao7V c_ao7X. (Free c_ao7X ff_ao7V, f_ao7a ~ Eff ff_ao7V es_ao7W, (:>) (Tagged tag_ao7U (Input i_ao79)) es_ao7W) => f_ao7a i_ao79
+ Data.Effect.Input: input'' :: forall {k} (tag :: k) i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Input i) :> es) => f i
- Data.Effect.Input: input'_ :: forall (i_ao79 :: Type) f_ao7a es_ao7Z ff_ao7Y c_ao80. (Free c_ao80 ff_ao7Y, f_ao7a ~ Eff ff_ao7Y es_ao7Z, In (Input i_ao79) es_ao7Z) => f_ao7a i_ao79
+ Data.Effect.Input: input'_ :: forall i f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Input i) es) => f i
- Data.Effect.Input: inputs :: forall i es ff a c. (Input i :> es, Functor (Eff ff es), Free c ff) => (i -> a) -> Eff ff es a
+ Data.Effect.Input: inputs :: forall i (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (Input i :> es, Functor (Eff ff es), Free c ff) => (i -> a) -> Eff ff es a
- Data.Effect.Input: runInputConst :: forall i es ff a c. (Applicative (Eff ff es), Free c ff) => i -> Eff ff (Input i ': es) a -> Eff ff es a
+ Data.Effect.Input: runInputConst :: forall i (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (Applicative (Eff ff es), Free c ff) => i -> Eff ff (Input i ': es) a -> Eff ff es a
- Data.Effect.Input: runInputEff :: forall i es ff a c. Free c ff => Eff ff es i -> Eff ff (Input i ': es) a -> Eff ff es a
+ Data.Effect.Input: runInputEff :: forall i (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). Free c ff => Eff ff es i -> Eff ff (Input i ': es) a -> Eff ff es a
- Data.Effect.KVStore: [LookupKV] :: k -> KVStore k v f (Maybe v)
+ Data.Effect.KVStore: [LookupKV] :: forall k v (a :: Type -> Type). k -> KVStore k v a (Maybe v)
- Data.Effect.KVStore: [UpdateKV] :: k -> Maybe v -> KVStore k v f ()
+ Data.Effect.KVStore: [UpdateKV] :: forall k v (a :: Type -> Type). k -> Maybe v -> KVStore k v a ()
- Data.Effect.KVStore: data KVStore k v :: Effect
+ Data.Effect.KVStore: data KVStore k v (a :: Type -> Type) b
- Data.Effect.KVStore: deleteKV :: forall v k es ff c. (KVStore k v :> es, Free c ff) => k -> Eff ff es ()
+ Data.Effect.KVStore: deleteKV :: forall v k (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (KVStore k v :> es, Free c ff) => k -> Eff ff es ()
- Data.Effect.KVStore: existsKV :: forall v k es ff c. (KVStore k v :> es, Functor (Eff ff es), Free c ff) => k -> Eff ff es Bool
+ Data.Effect.KVStore: existsKV :: forall v k (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (KVStore k v :> es, Functor (Eff ff es), Free c ff) => k -> Eff ff es Bool
- Data.Effect.KVStore: lookupKV :: forall (k_aqb6 :: Type) (v_aqb7 :: Type) f_aqb8 es_aqcv ff_aqcu c_aqcw. (Free c_aqcw ff_aqcu, f_aqb8 ~ Eff ff_aqcu es_aqcv, (:>) (KVStore k_aqb6 v_aqb7) es_aqcv) => k_aqb6 -> f_aqb8 (Maybe v_aqb7)
+ Data.Effect.KVStore: lookupKV :: forall k v f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, KVStore k v :> es) => k -> f (Maybe v)
- Data.Effect.KVStore: lookupKV' :: forall key_aqcy (k_aqb6 :: Type) (v_aqb7 :: Type) f_aqb8 es_aqcA ff_aqcz c_aqcB. (Free c_aqcB ff_aqcz, f_aqb8 ~ Eff ff_aqcz es_aqcA, Has key_aqcy (KVStore k_aqb6 v_aqb7) es_aqcA) => k_aqb6 -> f_aqb8 (Maybe v_aqb7)
+ Data.Effect.KVStore: lookupKV' :: forall {k1} (key :: k1) k2 v f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (KVStore k2 v) es) => k2 -> f (Maybe v)
- Data.Effect.KVStore: lookupKV'' :: forall tag_aqcD (k_aqb6 :: Type) (v_aqb7 :: Type) f_aqb8 es_aqcF ff_aqcE c_aqcG. (Free c_aqcG ff_aqcE, f_aqb8 ~ Eff ff_aqcE es_aqcF, (:>) (Tagged tag_aqcD (KVStore k_aqb6 v_aqb7)) es_aqcF) => k_aqb6 -> f_aqb8 (Maybe v_aqb7)
+ Data.Effect.KVStore: lookupKV'' :: forall {k1} (tag :: k1) k2 v f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (KVStore k2 v) :> es) => k2 -> f (Maybe v)
- Data.Effect.KVStore: lookupKV'_ :: forall (k_aqb6 :: Type) (v_aqb7 :: Type) f_aqb8 es_aqcJ ff_aqcI c_aqcK. (Free c_aqcK ff_aqcI, f_aqb8 ~ Eff ff_aqcI es_aqcJ, In (KVStore k_aqb6 v_aqb7) es_aqcJ) => k_aqb6 -> f_aqb8 (Maybe v_aqb7)
+ Data.Effect.KVStore: lookupKV'_ :: forall k v f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (KVStore k v) es) => k -> f (Maybe v)
- Data.Effect.KVStore: lookupOrThrowKV :: forall k v e es ff c. (KVStore k v :> es, Throw e :> es, Monad (Eff ff es), Free c ff) => (k -> e) -> k -> Eff ff es v
+ Data.Effect.KVStore: lookupOrThrowKV :: forall k v e (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (KVStore k v :> es, Throw e :> es, Monad (Eff ff es), Free c ff) => (k -> e) -> k -> Eff ff es v
- Data.Effect.KVStore: modifyKV :: forall k v es ff c. (KVStore k v :> es, Monad (Eff ff es), Free c ff) => v -> (v -> v) -> k -> Eff ff es ()
+ Data.Effect.KVStore: modifyKV :: forall k v (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (KVStore k v :> es, Monad (Eff ff es), Free c ff) => v -> (v -> v) -> k -> Eff ff es ()
- Data.Effect.KVStore: runKVStoreAsState :: forall k v es ff c. (Ord k, State (Map k v) :> es, Monad (Eff ff es), Free c ff) => Eff ff (KVStore k v ': es) ~> Eff ff es
+ Data.Effect.KVStore: runKVStoreAsState :: forall k v (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Ord k, State (Map k v) :> es, Monad (Eff ff es), Free c ff) => Eff ff (KVStore k v ': es) ~> Eff ff es
- Data.Effect.KVStore: runKVStoreIORef :: forall k v a es ff c. (Ord k, Emb IO :> es, forall es'. Monad (Eff ff es'), Free c ff) => Map k v -> Eff ff (KVStore k v ': es) a -> Eff ff es (Map k v, a)
+ Data.Effect.KVStore: runKVStoreIORef :: forall k v a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Ord k, Emb IO :> es, forall (es' :: [Effect]). () => Monad (Eff ff es'), Free c ff) => Map k v -> Eff ff (KVStore k v ': es) a -> Eff ff es (Map k v, a)
- Data.Effect.KVStore: updateKV :: forall (k_aqb9 :: Type) (v_aqba :: Type) f_aqbb es_aqcN ff_aqcM c_aqcO. (Free c_aqcO ff_aqcM, f_aqbb ~ Eff ff_aqcM es_aqcN, (:>) (KVStore k_aqb9 v_aqba) es_aqcN) => k_aqb9 -> Maybe v_aqba -> f_aqbb ()
+ Data.Effect.KVStore: updateKV :: forall k v f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, KVStore k v :> es) => k -> Maybe v -> f ()
- Data.Effect.KVStore: updateKV' :: forall key_aqcR (k_aqb9 :: Type) (v_aqba :: Type) f_aqbb es_aqcT ff_aqcS c_aqcU. (Free c_aqcU ff_aqcS, f_aqbb ~ Eff ff_aqcS es_aqcT, Has key_aqcR (KVStore k_aqb9 v_aqba) es_aqcT) => k_aqb9 -> Maybe v_aqba -> f_aqbb ()
+ Data.Effect.KVStore: updateKV' :: forall {k1} (key :: k1) k2 v f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (KVStore k2 v) es) => k2 -> Maybe v -> f ()
- Data.Effect.KVStore: updateKV'' :: forall tag_aqcX (k_aqb9 :: Type) (v_aqba :: Type) f_aqbb es_aqcZ ff_aqcY c_aqd0. (Free c_aqd0 ff_aqcY, f_aqbb ~ Eff ff_aqcY es_aqcZ, (:>) (Tagged tag_aqcX (KVStore k_aqb9 v_aqba)) es_aqcZ) => k_aqb9 -> Maybe v_aqba -> f_aqbb ()
+ Data.Effect.KVStore: updateKV'' :: forall {k1} (tag :: k1) k2 v f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (KVStore k2 v) :> es) => k2 -> Maybe v -> f ()
- Data.Effect.KVStore: updateKV'_ :: forall (k_aqb9 :: Type) (v_aqba :: Type) f_aqbb es_aqd4 ff_aqd3 c_aqd5. (Free c_aqd5 ff_aqd3, f_aqbb ~ Eff ff_aqd3 es_aqd4, In (KVStore k_aqb9 v_aqba) es_aqd4) => k_aqb9 -> Maybe v_aqba -> f_aqbb ()
+ Data.Effect.KVStore: updateKV'_ :: forall k v f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (KVStore k v) es) => k -> Maybe v -> f ()
- Data.Effect.KVStore: writeKV :: forall k v es ff c. (KVStore k v :> es, Free c ff) => k -> v -> Eff ff es ()
+ Data.Effect.KVStore: writeKV :: forall k v (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (KVStore k v :> es, Free c ff) => k -> v -> Eff ff es ()
- Data.Effect.Log: [Log] :: msg -> Log msg f ()
+ Data.Effect.Log: [Log] :: forall msg (a :: Type -> Type). msg -> Log msg a ()
- Data.Effect.Log: data Log msg :: Effect
+ Data.Effect.Log: data Log msg (a :: Type -> Type) b
- Data.Effect.Log: log :: forall (msg_anLt :: Type) f_anLu es_anMb ff_anMa c_anMc. (Free c_anMc ff_anMa, f_anLu ~ Eff ff_anMa es_anMb, (:>) (Log msg_anLt) es_anMb) => msg_anLt -> f_anLu ()
+ Data.Effect.Log: log :: forall msg f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Log msg :> es) => msg -> f ()
- Data.Effect.Log: log' :: forall key_anMe (msg_anLt :: Type) f_anLu es_anMg ff_anMf c_anMh. (Free c_anMh ff_anMf, f_anLu ~ Eff ff_anMf es_anMg, Has key_anMe (Log msg_anLt) es_anMg) => msg_anLt -> f_anLu ()
+ Data.Effect.Log: log' :: forall {k} (key :: k) msg f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Log msg) es) => msg -> f ()
- Data.Effect.Log: log'' :: forall tag_anMj (msg_anLt :: Type) f_anLu es_anMl ff_anMk c_anMm. (Free c_anMm ff_anMk, f_anLu ~ Eff ff_anMk es_anMl, (:>) (Tagged tag_anMj (Log msg_anLt)) es_anMl) => msg_anLt -> f_anLu ()
+ Data.Effect.Log: log'' :: forall {k} (tag :: k) msg f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Log msg) :> es) => msg -> f ()
- Data.Effect.Log: log'_ :: forall (msg_anLt :: Type) f_anLu es_anMp ff_anMo c_anMq. (Free c_anMq ff_anMo, f_anLu ~ Eff ff_anMo es_anMp, In (Log msg_anLt) es_anMp) => msg_anLt -> f_anLu ()
+ Data.Effect.Log: log'_ :: forall msg f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Log msg) es) => msg -> f ()
- Data.Effect.Log: runLogAction :: forall msg a es ff c. Free c ff => LogAction (Eff ff es) msg -> Eff ff (Log msg ': es) a -> Eff ff es a
+ Data.Effect.Log: runLogAction :: forall msg a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). Free c ff => LogAction (Eff ff es) msg -> Eff ff (Log msg ': es) a -> Eff ff es a
- Data.Effect.Log: runLogActionEmbed :: forall msg f a es ff c. (Emb f :> es, Free c ff) => LogAction f msg -> Eff ff (Log msg ': es) a -> Eff ff es a
+ Data.Effect.Log: runLogActionEmbed :: forall msg (f :: Type -> Type) a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Emb f :> es, Free c ff) => LogAction f msg -> Eff ff (Log msg ': es) a -> Eff ff es a
- Data.Effect.Log: runLogAsOutput :: forall msg a es ff c. (Output msg :> es, Free c ff) => Eff ff (Log msg ': es) a -> Eff ff es a
+ Data.Effect.Log: runLogAsOutput :: forall msg a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Output msg :> es, Free c ff) => Eff ff (Log msg ': es) a -> Eff ff es a
- Data.Effect.Log: runOutputAsLog :: forall msg a es ff c. (Log msg :> es, Free c ff) => Eff ff (Output msg ': es) a -> Eff ff es a
+ Data.Effect.Log: runOutputAsLog :: forall msg a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Log msg :> es, Free c ff) => Eff ff (Output msg ': es) a -> Eff ff es a
- Data.Effect.NonDet: branch :: forall es a ff c. (Choose :> es, Monad (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es a -> Eff ff es a
+ Data.Effect.NonDet: branch :: forall (es :: [Effect]) a (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Choose :> es, Monad (Eff ff es), Free c ff) => Eff ff es a -> Eff ff es a -> Eff ff es a
- Data.Effect.NonDet: choice :: forall es a ff c. (Choose :> es, Empty :> es, Monad (Eff ff es), Free c ff) => [a] -> Eff ff es a
+ Data.Effect.NonDet: choice :: forall (es :: [Effect]) a (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Choose :> es, Empty :> es, Monad (Eff ff es), Free c ff) => [a] -> Eff ff es a
- Data.Effect.NonDet: choiceH :: forall es a ff c. (ChooseH :> es, Empty :> es, Monad (Eff ff es), Free c ff) => [a] -> Eff ff es a
+ Data.Effect.NonDet: choiceH :: forall (es :: [Effect]) a (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (ChooseH :> es, Empty :> es, Monad (Eff ff es), Free c ff) => [a] -> Eff ff es a
- Data.Effect.NonDet: choose :: forall a_amYf es_amYj ff_amYi c_amYk. (Free c_amYk ff_amYi, a_amYf ~ Eff ff_amYi es_amYj, (:>) Choose es_amYj) => a_amYf Bool
+ Data.Effect.NonDet: choose :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Choose :> es) => a Bool
- Data.Effect.NonDet: choose' :: forall key_amYl a_amYf es_amYn ff_amYm c_amYo. (Free c_amYo ff_amYm, a_amYf ~ Eff ff_amYm es_amYn, Has key_amYl Choose es_amYn) => a_amYf Bool
+ Data.Effect.NonDet: choose' :: forall {k} (key :: k) a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key Choose es) => a Bool
- Data.Effect.NonDet: choose'' :: forall tag_amYp a_amYf es_amYr ff_amYq c_amYs. (Free c_amYs ff_amYq, a_amYf ~ Eff ff_amYq es_amYr, (:>) (Tagged tag_amYp Choose) es_amYr) => a_amYf Bool
+ Data.Effect.NonDet: choose'' :: forall {k} (tag :: k) a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag Choose :> es) => a Bool
- Data.Effect.NonDet: choose'_ :: forall a_amYf es_amYu ff_amYt c_amYv. (Free c_amYv ff_amYt, a_amYf ~ Eff ff_amYt es_amYu, In Choose es_amYu) => a_amYf Bool
+ Data.Effect.NonDet: choose'_ :: forall a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In Choose es) => a Bool
- Data.Effect.NonDet: chooseH :: forall (b_an8d :: Type) a_an8c es_an8i ff_an8h c_an8j. (Free c_an8j ff_an8h, a_an8c ~ Eff ff_an8h es_an8i, (:>) ChooseH es_an8i) => a_an8c b_an8d -> a_an8c b_an8d -> a_an8c b_an8d
+ Data.Effect.NonDet: chooseH :: forall b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, ChooseH :> es) => a b -> a b -> a b
- Data.Effect.NonDet: chooseH' :: forall key_an8m (b_an8d :: Type) a_an8c es_an8o ff_an8n c_an8p. (Free c_an8p ff_an8n, a_an8c ~ Eff ff_an8n es_an8o, Has key_an8m ChooseH es_an8o) => a_an8c b_an8d -> a_an8c b_an8d -> a_an8c b_an8d
+ Data.Effect.NonDet: chooseH' :: forall {k} (key :: k) b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key ChooseH es) => a b -> a b -> a b
- Data.Effect.NonDet: chooseH'' :: forall tag_an8s (b_an8d :: Type) a_an8c es_an8u ff_an8t c_an8v. (Free c_an8v ff_an8t, a_an8c ~ Eff ff_an8t es_an8u, (:>) (Tagged tag_an8s ChooseH) es_an8u) => a_an8c b_an8d -> a_an8c b_an8d -> a_an8c b_an8d
+ Data.Effect.NonDet: chooseH'' :: forall {k} (tag :: k) b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag ChooseH :> es) => a b -> a b -> a b
- Data.Effect.NonDet: chooseH'_ :: forall (b_an8d :: Type) a_an8c es_an8z ff_an8y c_an8A. (Free c_an8A ff_an8y, a_an8c ~ Eff ff_an8y es_an8z, In ChooseH es_an8z) => a_an8c b_an8d -> a_an8c b_an8d -> a_an8c b_an8d
+ Data.Effect.NonDet: chooseH'_ :: forall b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In ChooseH es) => a b -> a b -> a b
- Data.Effect.NonDet: data () => Choose (a :: Type -> Type) b
+ Data.Effect.NonDet: data Choose (a :: Type -> Type) b
- Data.Effect.NonDet: data () => ChooseH (a :: Type -> Type) b
+ Data.Effect.NonDet: data ChooseH (a :: Type -> Type) b
- Data.Effect.NonDet: data () => Empty (a :: Type -> Type) b
+ Data.Effect.NonDet: data Empty (a :: Type -> Type) b
- Data.Effect.NonDet: empty :: forall (b_amNT :: Type) a_amNS es_amNY ff_amNX c_amNZ. (Free c_amNZ ff_amNX, a_amNS ~ Eff ff_amNX es_amNY, (:>) Empty es_amNY) => a_amNS b_amNT
+ Data.Effect.NonDet: empty :: forall b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Empty :> es) => a b
- Data.Effect.NonDet: empty' :: forall key_amO0 (b_amNT :: Type) a_amNS es_amO2 ff_amO1 c_amO3. (Free c_amO3 ff_amO1, a_amNS ~ Eff ff_amO1 es_amO2, Has key_amO0 Empty es_amO2) => a_amNS b_amNT
+ Data.Effect.NonDet: empty' :: forall {k} (key :: k) b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key Empty es) => a b
- Data.Effect.NonDet: empty'' :: forall tag_amO4 (b_amNT :: Type) a_amNS es_amO6 ff_amO5 c_amO7. (Free c_amO7 ff_amO5, a_amNS ~ Eff ff_amO5 es_amO6, (:>) (Tagged tag_amO4 Empty) es_amO6) => a_amNS b_amNT
+ Data.Effect.NonDet: empty'' :: forall {k} (tag :: k) b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag Empty :> es) => a b
- Data.Effect.NonDet: empty'_ :: forall (b_amNT :: Type) a_amNS es_amO9 ff_amO8 c_amOa. (Free c_amOa ff_amO8, a_amNS ~ Eff ff_amO8 es_amO9, In Empty es_amO9) => a_amNS b_amNT
+ Data.Effect.NonDet: empty'_ :: forall b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In Empty es) => a b
- Data.Effect.NonDet: runChooseH :: forall es a ff c. (Choose :> es, Monad (Eff ff es), Free c ff) => Eff ff (ChooseH ': es) a -> Eff ff es a
+ Data.Effect.NonDet: runChooseH :: forall (es :: [Effect]) a (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Choose :> es, Monad (Eff ff es), Free c ff) => Eff ff (ChooseH ': es) a -> Eff ff es a
- Data.Effect.NonDet: runNonDetIO :: forall es a ff c. (UnliftIO :> es, Emb IO :> es, forall f. Monad (Eff ff f), Free c ff) => Eff ff (ChooseH ': (Empty ': es)) a -> Eff ff es (Either SomeException a)
+ Data.Effect.NonDet: runNonDetIO :: forall (es :: [Effect]) a (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (UnliftIO :> es, Emb IO :> es, forall (f :: [Effect]). () => Monad (Eff ff f), Free c ff) => Eff ff (ChooseH ': (Empty ': es)) a -> Eff ff es (Either SomeException a)
- Data.Effect.NonDet: runNonDetShift :: forall ans a es ref ff c. (Monoid ans, Shift ans ref :> es, forall f. Monad (ff f), Free c ff) => Eff ff (Choose ': (Empty ': es)) a -> Eff ff es a
+ Data.Effect.NonDet: runNonDetShift :: forall ans a (es :: [Effect]) (ref :: Type -> Type) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Monoid ans, Shift ans ref :> es, forall (f :: Type -> Type). () => Monad (ff f), Free c ff) => Eff ff (Choose ': (Empty ': es)) a -> Eff ff es a
- Data.Effect.Output: [Output] :: o -> Output o f ()
+ Data.Effect.Output: [Output] :: forall o (a :: Type -> Type). o -> Output o a ()
- Data.Effect.Output: data Output o :: Effect
+ Data.Effect.Output: data Output o (a :: Type -> Type) b
- Data.Effect.Output: ignoreOutput :: forall o es ff a c. (Applicative (Eff ff es), Free c ff) => Eff ff (Output o ': es) a -> Eff ff es a
+ Data.Effect.Output: ignoreOutput :: forall o (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (Applicative (Eff ff es), Free c ff) => Eff ff (Output o ': es) a -> Eff ff es a
- Data.Effect.Output: output :: forall (o_ammE :: Type) f_ammF es_amnm ff_amnl c_amnn. (Free c_amnn ff_amnl, f_ammF ~ Eff ff_amnl es_amnm, (:>) (Output o_ammE) es_amnm) => o_ammE -> f_ammF ()
+ Data.Effect.Output: output :: forall o f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Output o :> es) => o -> f ()
- Data.Effect.Output: output' :: forall key_amnp (o_ammE :: Type) f_ammF es_amnr ff_amnq c_amns. (Free c_amns ff_amnq, f_ammF ~ Eff ff_amnq es_amnr, Has key_amnp (Output o_ammE) es_amnr) => o_ammE -> f_ammF ()
+ Data.Effect.Output: output' :: forall {k} (key :: k) o f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Output o) es) => o -> f ()
- Data.Effect.Output: output'' :: forall tag_amnu (o_ammE :: Type) f_ammF es_amnw ff_amnv c_amnx. (Free c_amnx ff_amnv, f_ammF ~ Eff ff_amnv es_amnw, (:>) (Tagged tag_amnu (Output o_ammE)) es_amnw) => o_ammE -> f_ammF ()
+ Data.Effect.Output: output'' :: forall {k} (tag :: k) o f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Output o) :> es) => o -> f ()
- Data.Effect.Output: output'_ :: forall (o_ammE :: Type) f_ammF es_amnA ff_amnz c_amnB. (Free c_amnB ff_amnz, f_ammF ~ Eff ff_amnz es_amnA, In (Output o_ammE) es_amnA) => o_ammE -> f_ammF ()
+ Data.Effect.Output: output'_ :: forall o f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Output o) es) => o -> f ()
- Data.Effect.Output: runOutputEff :: forall o es ff a c. Free c ff => (o -> Eff ff es ()) -> Eff ff (Output o ': es) a -> Eff ff es a
+ Data.Effect.Output: runOutputEff :: forall o (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). Free c ff => (o -> Eff ff es ()) -> Eff ff (Output o ': es) a -> Eff ff es a
- Data.Effect.Provider: Const1 :: f a -> Const1 f x (a :: Type)
+ Data.Effect.Provider: Const1 :: f a -> Const1 (f :: Type -> Type) (x :: k) a
- Data.Effect.Provider: ScopeC :: Eff ff (Each fs s ++ (Scoped ff t i fs r ': r)) a -> ScopeC ff t i fs r s a
+ Data.Effect.Provider: ScopeC :: Eff ff (Each fs s ++ (Scoped ff t i fs r ': r)) a -> ScopeC (ff :: (Type -> Type) -> Type -> Type) (t :: k -> Type -> Type) (i :: k -> Type) (fs :: [k -> Effect]) (r :: [Effect]) (s :: k) a
- Data.Effect.Provider: ScopeC_ :: Eff ff (es ++ (Scoped_ ff t i es r ': r)) a -> ScopeC_ ff t i es r a
+ Data.Effect.Provider: ScopeC_ :: Eff ff (es ++ (Scoped_ ff t i es r ': r)) a -> ScopeC_ (ff :: (Type -> Type) -> Type -> Type) (t :: k -> Type -> Type) (i :: k -> Type) (es :: [Effect]) (r :: [Effect]) a
- Data.Effect.Provider: [Scope] :: forall s t i a f b. i s -> ((forall x. f x -> b s x) -> b s a) -> Scope t i b f (t s a)
+ Data.Effect.Provider: [Scope] :: forall {k} (s :: k) (t :: k -> Type -> Type) (i :: k -> Type) a1 (a :: Type -> Type) (b :: k -> Type -> Type). i s -> ((forall x. () => a x -> b s x) -> b s a1) -> Scope t i b a (t s a1)
- Data.Effect.Provider: [getConst1] :: Const1 f x (a :: Type) -> f a
+ Data.Effect.Provider: [getConst1] :: Const1 (f :: Type -> Type) (x :: k) a -> f a
- Data.Effect.Provider: [unScopeC] :: ScopeC ff t i fs r s a -> Eff ff (Each fs s ++ (Scoped ff t i fs r ': r)) a
+ Data.Effect.Provider: [unScopeC] :: ScopeC (ff :: (Type -> Type) -> Type -> Type) (t :: k -> Type -> Type) (i :: k -> Type) (fs :: [k -> Effect]) (r :: [Effect]) (s :: k) a -> Eff ff (Each fs s ++ (Scoped ff t i fs r ': r)) a
- Data.Effect.Provider: [unScopeC_] :: ScopeC_ ff t i es r a -> Eff ff (es ++ (Scoped_ ff t i es r ': r)) a
+ Data.Effect.Provider: [unScopeC_] :: ScopeC_ (ff :: (Type -> Type) -> Type -> Type) (t :: k -> Type -> Type) (i :: k -> Type) (es :: [Effect]) (r :: [Effect]) a -> Eff ff (es ++ (Scoped_ ff t i es r ': r)) a
- Data.Effect.Provider: data Scope t i b :: Effect
+ Data.Effect.Provider: data Scope (t :: k -> Type -> Type) (i :: k -> Type) (b :: k -> Type -> Type) (a :: Type -> Type) c
- Data.Effect.Provider: newtype Const1 f x (a :: Type)
+ Data.Effect.Provider: newtype Const1 (f :: Type -> Type) (x :: k) a
- Data.Effect.Provider: newtype ScopeC ff t i fs r s a
+ Data.Effect.Provider: newtype ScopeC (ff :: Type -> Type -> Type -> Type) (t :: k -> Type -> Type) (i :: k -> Type) (fs :: [k -> Effect]) (r :: [Effect]) (s :: k) a
- Data.Effect.Provider: newtype ScopeC_ ff t i es r a
+ Data.Effect.Provider: newtype ScopeC_ (ff :: Type -> Type -> Type -> Type) (t :: k -> Type -> Type) (i :: k -> Type) (es :: [Effect]) (r :: [Effect]) a
- Data.Effect.Provider: provide :: forall t i a es' es r ff c. (Provider ff t i es r :> es', forall es''. Functor (Eff ff es''), Free c ff) => i -> ((Eff ff es' ~> Eff ff (es ++ (Provider ff t i es r ': r))) -> Eff ff (es ++ (Provider ff t i es r ': r)) a) -> Eff ff es' (t a)
+ Data.Effect.Provider: provide :: forall t i a (es' :: [Effect]) (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Provider ff t i es r :> es', forall (es'' :: [Effect]). () => Functor (Eff ff es''), Free c ff) => i -> ((Eff ff es' ~> Eff ff (es ++ (Provider ff t i es r ': r))) -> Eff ff (es ++ (Provider ff t i es r ': r)) a) -> Eff ff es' (t a)
- Data.Effect.Provider: provide_ :: forall i a es' es r ff c. (Provider ff Identity i es r :> es', forall es''. Functor (Eff ff es''), Free c ff) => i -> ((Eff ff es' ~> Eff ff (es ++ (Provider ff Identity i es r ': r))) -> Eff ff (es ++ (Provider ff Identity i es r ': r)) a) -> Eff ff es' a
+ Data.Effect.Provider: provide_ :: forall i a (es' :: [Effect]) (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Provider ff Identity i es r :> es', forall (es'' :: [Effect]). () => Functor (Eff ff es''), Free c ff) => i -> ((Eff ff es' ~> Eff ff (es ++ (Provider ff Identity i es r ': r))) -> Eff ff (es ++ (Provider ff Identity i es r ': r)) a) -> Eff ff es' a
- Data.Effect.Provider: provide__ :: forall a es' es r ff c. (Provider ff Identity () es r :> es', forall es''. Functor (Eff ff es''), Free c ff) => ((Eff ff es' ~> Eff ff (es ++ (Provider ff Identity () es r ': r))) -> Eff ff (es ++ (Provider ff Identity () es r ': r)) a) -> Eff ff es' a
+ Data.Effect.Provider: provide__ :: forall a (es' :: [Effect]) (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Provider ff Identity () es r :> es', forall (es'' :: [Effect]). () => Functor (Eff ff es''), Free c ff) => ((Eff ff es' ~> Eff ff (es ++ (Provider ff Identity () es r ': r))) -> Eff ff (es ++ (Provider ff Identity () es r ': r)) a) -> Eff ff es' a
- Data.Effect.Provider: runProvider :: forall t i a es r ff c. (forall es'. Functor (Eff ff es'), KnownLength es, Free c ff) => (forall x. i -> Eff ff (es ++ (Provider ff t i es r ': r)) x -> Eff ff (Provider ff t i es r ': r) (t x)) -> Eff ff (Provider ff t i es r ': r) a -> Eff ff r a
+ Data.Effect.Provider: runProvider :: forall t i a (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (forall (es' :: [Effect]). () => Functor (Eff ff es'), KnownLength es, Free c ff) => (forall x. () => i -> Eff ff (es ++ (Provider ff t i es r ': r)) x -> Eff ff (Provider ff t i es r ': r) (t x)) -> Eff ff (Provider ff t i es r ': r) a -> Eff ff r a
- Data.Effect.Provider: runProvider_ :: forall i a es r ff c. (forall es'. Functor (Eff ff es'), KnownLength es, Free c ff) => (forall x. i -> Eff ff (es ++ (Provider ff Identity i es r ': r)) x -> Eff ff (Provider ff Identity i es r ': r) x) -> Eff ff (Provider ff Identity i es r ': r) a -> Eff ff r a
+ Data.Effect.Provider: runProvider_ :: forall i a (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (forall (es' :: [Effect]). () => Functor (Eff ff es'), KnownLength es, Free c ff) => (forall x. () => i -> Eff ff (es ++ (Provider ff Identity i es r ': r)) x -> Eff ff (Provider ff Identity i es r ': r) x) -> Eff ff (Provider ff Identity i es r ': r) a -> Eff ff r a
- Data.Effect.Provider: runProvider__ :: forall a es r ff c. (forall es'. Functor (Eff ff es'), KnownLength es, Free c ff) => (forall x. Eff ff (es ++ (Provider ff Identity () es r ': r)) x -> Eff ff (Provider ff Identity () es r ': r) x) -> Eff ff (Provider ff Identity () es r ': r) a -> Eff ff r a
+ Data.Effect.Provider: runProvider__ :: forall a (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (forall (es' :: [Effect]). () => Functor (Eff ff es'), KnownLength es, Free c ff) => (forall x. () => Eff ff (es ++ (Provider ff Identity () es r ': r)) x -> Eff ff (Provider ff Identity () es r ': r) x) -> Eff ff (Provider ff Identity () es r ': r) a -> Eff ff r a
- Data.Effect.Provider: runScoped :: forall t i a es r ff c. (KnownLength es, Free c ff) => (forall s x. i s -> Eff ff (Each es s ++ (Scoped ff t i es r ': r)) x -> Eff ff (Scoped ff t i es r ': r) (t s x)) -> Eff ff (Scoped ff t i es r ': r) a -> Eff ff r a
+ Data.Effect.Provider: runScoped :: forall {k} t i a (es :: [k -> Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (KnownLength es, Free c ff) => (forall (s :: k) x. () => i s -> Eff ff (Each es s ++ (Scoped ff t i es r ': r)) x -> Eff ff (Scoped ff t i es r ': r) (t s x)) -> Eff ff (Scoped ff t i es r ': r) a -> Eff ff r a
- Data.Effect.Provider: runScoped_ :: forall t i a es r ff c. (KnownLength es, Free c ff) => (forall p x. i p -> Eff ff (es ++ (Scoped_ ff t i es r ': r)) x -> Eff ff (Scoped_ ff t i es r ': r) (t p x)) -> Eff ff (Scoped_ ff t i es r ': r) a -> Eff ff r a
+ Data.Effect.Provider: runScoped_ :: forall {k} t i a (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (KnownLength es, Free c ff) => (forall (p :: k) x. () => i p -> Eff ff (es ++ (Scoped_ ff t i es r ': r)) x -> Eff ff (Scoped_ ff t i es r ': r) (t p x)) -> Eff ff (Scoped_ ff t i es r ': r) a -> Eff ff r a
- Data.Effect.Provider: scope :: forall {k_alwg :: Type} (s_X0 :: k_alwg) (t_alvd :: k_alwg -> Type -> Type) (i_alve :: k_alwg -> Type) (a_X1 :: Type) (b_alvh :: k_alwg -> Type -> Type) f_alvg es_alxl ff_alxk c_alxm. (Free c_alxm ff_alxk, f_alvg ~ Eff ff_alxk es_alxl, (:>) (Scope t_alvd i_alve b_alvh) es_alxl) => i_alve s_X0 -> ((forall (x_alvi :: Type). f_alvg x_alvi -> b_alvh s_X0 x_alvi) -> b_alvh s_X0 a_X1) -> f_alvg (t_alvd s_X0 a_X1)
+ Data.Effect.Provider: scope :: forall {k} (s :: k) t i a b f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Scope t i b :> es) => i s -> ((forall x. () => f x -> b s x) -> b s a) -> f (t s a)
- Data.Effect.Provider: scope' :: forall key_alxp {k_alwg :: Type} (s_X0 :: k_alwg) (t_alvd :: k_alwg -> Type -> Type) (i_alve :: k_alwg -> Type) (a_X1 :: Type) (b_alvh :: k_alwg -> Type -> Type) f_alvg es_alxr ff_alxq c_alxs. (Free c_alxs ff_alxq, f_alvg ~ Eff ff_alxq es_alxr, Has key_alxp (Scope t_alvd i_alve b_alvh) es_alxr) => i_alve s_X0 -> ((forall (x_alvi :: Type). f_alvg x_alvi -> b_alvh s_X0 x_alvi) -> b_alvh s_X0 a_X1) -> f_alvg (t_alvd s_X0 a_X1)
+ Data.Effect.Provider: scope' :: forall {k1} (key :: k1) {k2} (s :: k2) t i a b f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Scope t i b) es) => i s -> ((forall x. () => f x -> b s x) -> b s a) -> f (t s a)
- Data.Effect.Provider: scope'' :: forall tag_alxv {k_alwg :: Type} (s_X0 :: k_alwg) (t_alvd :: k_alwg -> Type -> Type) (i_alve :: k_alwg -> Type) (a_X1 :: Type) (b_alvh :: k_alwg -> Type -> Type) f_alvg es_alxx ff_alxw c_alxy. (Free c_alxy ff_alxw, f_alvg ~ Eff ff_alxw es_alxx, (:>) (Tagged tag_alxv (Scope t_alvd i_alve b_alvh)) es_alxx) => i_alve s_X0 -> ((forall (x_alvi :: Type). f_alvg x_alvi -> b_alvh s_X0 x_alvi) -> b_alvh s_X0 a_X1) -> f_alvg (t_alvd s_X0 a_X1)
+ Data.Effect.Provider: scope'' :: forall {k1} (tag :: k1) {k2} (s :: k2) t i a b f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Scope t i b) :> es) => i s -> ((forall x. () => f x -> b s x) -> b s a) -> f (t s a)
- Data.Effect.Provider: scope'_ :: forall {k_alwg :: Type} (s_X0 :: k_alwg) (t_alvd :: k_alwg -> Type -> Type) (i_alve :: k_alwg -> Type) (a_X1 :: Type) (b_alvh :: k_alwg -> Type -> Type) f_alvg es_alxC ff_alxB c_alxD. (Free c_alxD ff_alxB, f_alvg ~ Eff ff_alxB es_alxC, In (Scope t_alvd i_alve b_alvh) es_alxC) => i_alve s_X0 -> ((forall (x_alvi :: Type). f_alvg x_alvi -> b_alvh s_X0 x_alvi) -> b_alvh s_X0 a_X1) -> f_alvg (t_alvd s_X0 a_X1)
+ Data.Effect.Provider: scope'_ :: forall {k} (s :: k) t i a b f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Scope t i b) es) => i s -> ((forall x. () => f x -> b s x) -> b s a) -> f (t s a)
- Data.Effect.Provider: scoped :: forall t i s a es' es r ff c. (Scoped ff t i es r :> es', Free c ff) => i s -> ((Eff ff es' ~> Eff ff (Each es s ++ (Scoped ff t i es r ': r))) -> Eff ff (Each es s ++ (Scoped ff t i es r ': r)) a) -> Eff ff es' (t s a)
+ Data.Effect.Provider: scoped :: forall {k} t i (s :: k) a (es' :: [Effect]) (es :: [k -> Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Scoped ff t i es r :> es', Free c ff) => i s -> ((Eff ff es' ~> Eff ff (Each es s ++ (Scoped ff t i es r ': r))) -> Eff ff (Each es s ++ (Scoped ff t i es r ': r)) a) -> Eff ff es' (t s a)
- Data.Effect.Provider: scoped_ :: forall t i s a es' es r ff c. (Scoped_ ff t i es r :> es', Free c ff) => i s -> ((Eff ff es' ~> Eff ff (es ++ (Scoped_ ff t i es r ': r))) -> Eff ff (es ++ (Scoped_ ff t i es r ': r)) a) -> Eff ff es' (t s a)
+ Data.Effect.Provider: scoped_ :: forall {k} t i (s :: k) a (es' :: [Effect]) (es :: [Effect]) (r :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Scoped_ ff t i es r :> es', Free c ff) => i s -> ((Eff ff es' ~> Eff ff (es ++ (Scoped_ ff t i es r ': r))) -> Eff ff (es ++ (Scoped_ ff t i es r ': r)) a) -> Eff ff es' (t s a)
- Data.Effect.Provider: type Provider ff t i e es = Scoped_ ff (Const1 t) (Const i :: () -> Type) e es
+ Data.Effect.Provider: type Provider (ff :: Type -> Type -> Type -> Type) (t :: Type -> Type) i (e :: [Effect]) (es :: [Effect]) = Scoped_ ff Const1 t :: () -> Type -> Type Const i :: () -> Type e es
- Data.Effect.Provider: type Scoped ff t i es r = Scope t i (ScopeC ff t i es r)
+ Data.Effect.Provider: type Scoped (ff :: Type -> Type -> Type -> Type) (t :: k -> Type -> Type) (i :: k -> Type) (es :: [k -> Effect]) (r :: [Effect]) = Scope t i ScopeC ff t i es r
- Data.Effect.Provider: type Scoped_ ff t i es r = Scope t i (Const1 (ScopeC_ ff t i es r))
+ Data.Effect.Provider: type Scoped_ (ff :: Type -> Type -> Type -> Type) (t :: k -> Type -> Type) (i :: k -> Type) (es :: [Effect]) (r :: [Effect]) = Scope t i Const1 ScopeC_ ff t i es r :: k -> Type -> Type
- Data.Effect.Reader: ask :: forall (r_acSE :: Type) a_acSF es_akWH ff_akWG c_akWI. (Free c_akWI ff_akWG, a_acSF ~ Eff ff_akWG es_akWH, (:>) (Ask r_acSE) es_akWH) => a_acSF r_acSE
+ Data.Effect.Reader: ask :: forall r a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Ask r :> es) => a r
- Data.Effect.Reader: ask' :: forall key_akWJ (r_acSE :: Type) a_acSF es_akWL ff_akWK c_akWM. (Free c_akWM ff_akWK, a_acSF ~ Eff ff_akWK es_akWL, Has key_akWJ (Ask r_acSE) es_akWL) => a_acSF r_acSE
+ Data.Effect.Reader: ask' :: forall {k} (key :: k) r a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key (Ask r) es) => a r
- Data.Effect.Reader: ask'' :: forall tag_akWN (r_acSE :: Type) a_acSF es_akWP ff_akWO c_akWQ. (Free c_akWQ ff_akWO, a_acSF ~ Eff ff_akWO es_akWP, (:>) (Tagged tag_akWN (Ask r_acSE)) es_akWP) => a_acSF r_acSE
+ Data.Effect.Reader: ask'' :: forall {k} (tag :: k) r a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag (Ask r) :> es) => a r
- Data.Effect.Reader: ask'_ :: forall (r_acSE :: Type) a_acSF es_akWS ff_akWR c_akWT. (Free c_akWT ff_akWR, a_acSF ~ Eff ff_akWR es_akWS, In (Ask r_acSE) es_akWS) => a_acSF r_acSE
+ Data.Effect.Reader: ask'_ :: forall r a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In (Ask r) es) => a r
- Data.Effect.Reader: asks :: forall r es ff a c. (Ask r :> es, Functor (Eff ff es), Free c ff) => (r -> a) -> Eff ff es a
+ Data.Effect.Reader: asks :: forall r (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (Ask r :> es, Functor (Eff ff es), Free c ff) => (r -> a) -> Eff ff es a
- Data.Effect.Reader: data () => Ask r (a :: Type -> Type) b
+ Data.Effect.Reader: data Ask r (a :: Type -> Type) b
- Data.Effect.Reader: data () => Local r (a :: Type -> Type) b
+ Data.Effect.Reader: data Local r (a :: Type -> Type) b
- Data.Effect.Reader: handleLocal :: forall r es ff c. (Applicative (Eff ff es), Ask r `In` es, Free c ff) => Local r ~~> Eff ff es
+ Data.Effect.Reader: handleLocal :: forall r (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Applicative (Eff ff es), In (Ask r) es, Free c ff) => Local r ~~> Eff ff es
- Data.Effect.Reader: handleLocalFor :: forall r es ff c. (Applicative (Eff ff es), Free c ff) => Membership (Ask r) es -> Local r ~~> Eff ff es
+ Data.Effect.Reader: handleLocalFor :: forall r (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Applicative (Eff ff es), Free c ff) => Membership (Ask r) es -> Local r ~~> Eff ff es
- Data.Effect.Reader: local :: forall (r_acTK :: Type) (b_acTM :: Type) a_acTL es_al73 ff_al72 c_al74. (Free c_al74 ff_al72, a_acTL ~ Eff ff_al72 es_al73, (:>) (Local r_acTK) es_al73) => (r_acTK -> r_acTK) -> a_acTL b_acTM -> a_acTL b_acTM
+ Data.Effect.Reader: local :: forall r b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Local r :> es) => (r -> r) -> a b -> a b
- Data.Effect.Reader: local' :: forall key_al77 (r_acTK :: Type) (b_acTM :: Type) a_acTL es_al79 ff_al78 c_al7a. (Free c_al7a ff_al78, a_acTL ~ Eff ff_al78 es_al79, Has key_al77 (Local r_acTK) es_al79) => (r_acTK -> r_acTK) -> a_acTL b_acTM -> a_acTL b_acTM
+ Data.Effect.Reader: local' :: forall {k} (key :: k) r b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key (Local r) es) => (r -> r) -> a b -> a b
- Data.Effect.Reader: local'' :: forall tag_al7d (r_acTK :: Type) (b_acTM :: Type) a_acTL es_al7f ff_al7e c_al7g. (Free c_al7g ff_al7e, a_acTL ~ Eff ff_al7e es_al7f, (:>) (Tagged tag_al7d (Local r_acTK)) es_al7f) => (r_acTK -> r_acTK) -> a_acTL b_acTM -> a_acTL b_acTM
+ Data.Effect.Reader: local'' :: forall {k} (tag :: k) r b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag (Local r) :> es) => (r -> r) -> a b -> a b
- Data.Effect.Reader: local'_ :: forall (r_acTK :: Type) (b_acTM :: Type) a_acTL es_al7k ff_al7j c_al7l. (Free c_al7l ff_al7j, a_acTL ~ Eff ff_al7j es_al7k, In (Local r_acTK) es_al7k) => (r_acTK -> r_acTK) -> a_acTL b_acTM -> a_acTL b_acTM
+ Data.Effect.Reader: local'_ :: forall r b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In (Local r) es) => (r -> r) -> a b -> a b
- Data.Effect.Reader: runAsk :: forall r es ff a c. (Applicative (Eff ff es), Free c ff) => r -> Eff ff (Ask r ': es) a -> Eff ff es a
+ Data.Effect.Reader: runAsk :: forall r (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (Applicative (Eff ff es), Free c ff) => r -> Eff ff (Ask r ': es) a -> Eff ff es a
- Data.Effect.Reader: runLocal :: forall r es ff a c. (Applicative (Eff ff es), Ask r `In` es, Free c ff) => Eff ff (Local r ': es) a -> Eff ff es a
+ Data.Effect.Reader: runLocal :: forall r (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (Applicative (Eff ff es), In (Ask r) es, Free c ff) => Eff ff (Local r ': es) a -> Eff ff es a
- Data.Effect.Reader: runReader :: forall r es ff a c. (forall es'. Applicative (Eff ff es'), Free c ff) => r -> Eff ff (Local r ': (Ask r ': es)) a -> Eff ff es a
+ Data.Effect.Reader: runReader :: forall r (es :: [(Type -> Type) -> Type -> Type]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (forall (es' :: [Effect]). () => Applicative (Eff ff es'), Free c ff) => r -> Eff ff (Local r ': (Ask r ': es)) a -> Eff ff es a
- Data.Effect.Select: [Select] :: ((a -> r) -> a) -> Select r f a
+ Data.Effect.Select: [Select] :: forall b r (a :: Type -> Type). ((b -> r) -> b) -> Select r a b
- Data.Effect.Select: data Select r :: Effect
+ Data.Effect.Select: data Select r (a :: Type -> Type) b
- Data.Effect.Select: select :: forall (a_akJ2 :: Type) (r_akJ3 :: Type) f_akJ4 es_akJZ ff_akJY c_akK0. (Free c_akK0 ff_akJY, f_akJ4 ~ Eff ff_akJY es_akJZ, (:>) (Select r_akJ3) es_akJZ) => ((a_akJ2 -> r_akJ3) -> a_akJ2) -> f_akJ4 a_akJ2
+ Data.Effect.Select: select :: forall a r f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Select r :> es) => ((a -> r) -> a) -> f a
- Data.Effect.Select: select' :: forall key_akK2 (a_akJ2 :: Type) (r_akJ3 :: Type) f_akJ4 es_akK4 ff_akK3 c_akK5. (Free c_akK5 ff_akK3, f_akJ4 ~ Eff ff_akK3 es_akK4, Has key_akK2 (Select r_akJ3) es_akK4) => ((a_akJ2 -> r_akJ3) -> a_akJ2) -> f_akJ4 a_akJ2
+ Data.Effect.Select: select' :: forall {k} (key :: k) a r f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Select r) es) => ((a -> r) -> a) -> f a
- Data.Effect.Select: select'' :: forall tag_akK7 (a_akJ2 :: Type) (r_akJ3 :: Type) f_akJ4 es_akK9 ff_akK8 c_akKa. (Free c_akKa ff_akK8, f_akJ4 ~ Eff ff_akK8 es_akK9, (:>) (Tagged tag_akK7 (Select r_akJ3)) es_akK9) => ((a_akJ2 -> r_akJ3) -> a_akJ2) -> f_akJ4 a_akJ2
+ Data.Effect.Select: select'' :: forall {k} (tag :: k) a r f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Select r) :> es) => ((a -> r) -> a) -> f a
- Data.Effect.Select: select'_ :: forall (a_akJ2 :: Type) (r_akJ3 :: Type) f_akJ4 es_akKd ff_akKc c_akKe. (Free c_akKe ff_akKc, f_akJ4 ~ Eff ff_akKc es_akKd, In (Select r_akJ3) es_akKd) => ((a_akJ2 -> r_akJ3) -> a_akJ2) -> f_akJ4 a_akJ2
+ Data.Effect.Select: select'_ :: forall a r f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Select r) es) => ((a -> r) -> a) -> f a
- Data.Effect.Shift: [Abort] :: ans -> Shift ans ref f a
+ Data.Effect.Shift: [Abort] :: forall ans (ref :: Type -> Type) (a :: Type -> Type) b. ans -> Shift ans ref a b
- Data.Effect.Shift: [Call] :: ref a -> a -> Shift ans ref f ans
+ Data.Effect.Shift: [Call] :: forall (ref :: Type -> Type) a1 ans (a :: Type -> Type). ref a1 -> a1 -> Shift ans ref a ans
- Data.Effect.Shift: [SubShiftFork] :: Shift ans ref f (Either (ref a) a)
+ Data.Effect.Shift: [SubShiftFork] :: forall ans (ref :: Type -> Type) (a :: Type -> Type) a1. Shift ans ref a (Either (ref a1) a1)
- Data.Effect.Shift: abort :: forall (ans_ae7g :: Type) (ref_ae7h :: Type -> Type) (a_ae7j :: Type) f_ae7i es_ae9Y ff_ae9X c_ae9Z. (Free c_ae9Z ff_ae9X, f_ae7i ~ Eff ff_ae9X es_ae9Y, (:>) (Shift ans_ae7g ref_ae7h) es_ae9Y) => ans_ae7g -> f_ae7i a_ae7j
+ Data.Effect.Shift: abort :: forall ans (ref :: Type -> Type) a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Shift ans ref :> es) => ans -> f a
- Data.Effect.Shift: abort' :: forall key_aea1 (ans_ae7g :: Type) (ref_ae7h :: Type -> Type) (a_ae7j :: Type) f_ae7i es_aea3 ff_aea2 c_aea4. (Free c_aea4 ff_aea2, f_ae7i ~ Eff ff_aea2 es_aea3, Has key_aea1 (Shift ans_ae7g ref_ae7h) es_aea3) => ans_ae7g -> f_ae7i a_ae7j
+ Data.Effect.Shift: abort' :: forall {k} (key :: k) ans (ref :: Type -> Type) a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Shift ans ref) es) => ans -> f a
- Data.Effect.Shift: abort'' :: forall tag_aea6 (ans_ae7g :: Type) (ref_ae7h :: Type -> Type) (a_ae7j :: Type) f_ae7i es_aea8 ff_aea7 c_aea9. (Free c_aea9 ff_aea7, f_ae7i ~ Eff ff_aea7 es_aea8, (:>) (Tagged tag_aea6 (Shift ans_ae7g ref_ae7h)) es_aea8) => ans_ae7g -> f_ae7i a_ae7j
+ Data.Effect.Shift: abort'' :: forall {k} (tag :: k) ans (ref :: Type -> Type) a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Shift ans ref) :> es) => ans -> f a
- Data.Effect.Shift: abort'_ :: forall (ans_ae7g :: Type) (ref_ae7h :: Type -> Type) (a_ae7j :: Type) f_ae7i es_aeac ff_aeab c_aead. (Free c_aead ff_aeab, f_ae7i ~ Eff ff_aeab es_aeac, In (Shift ans_ae7g ref_ae7h) es_aeac) => ans_ae7g -> f_ae7i a_ae7j
+ Data.Effect.Shift: abort'_ :: forall ans (ref :: Type -> Type) a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Shift ans ref) es) => ans -> f a
- Data.Effect.Shift: call :: forall (ref_ae7c :: Type -> Type) (a_X0 :: Type) (ans_ae7e :: Type) f_ae7f es_ae9C ff_ae9B c_ae9D. (Free c_ae9D ff_ae9B, f_ae7f ~ Eff ff_ae9B es_ae9C, (:>) (Shift ans_ae7e ref_ae7c) es_ae9C) => ref_ae7c a_X0 -> a_X0 -> f_ae7f ans_ae7e
+ Data.Effect.Shift: call :: forall ref a ans f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Shift ans ref :> es) => ref a -> a -> f ans
- Data.Effect.Shift: call' :: forall key_ae9G (ref_ae7c :: Type -> Type) (a_X0 :: Type) (ans_ae7e :: Type) f_ae7f es_ae9I ff_ae9H c_ae9J. (Free c_ae9J ff_ae9H, f_ae7f ~ Eff ff_ae9H es_ae9I, Has key_ae9G (Shift ans_ae7e ref_ae7c) es_ae9I) => ref_ae7c a_X0 -> a_X0 -> f_ae7f ans_ae7e
+ Data.Effect.Shift: call' :: forall {k} (key :: k) ref a ans f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Shift ans ref) es) => ref a -> a -> f ans
- Data.Effect.Shift: call'' :: forall tag_ae9M (ref_ae7c :: Type -> Type) (a_X0 :: Type) (ans_ae7e :: Type) f_ae7f es_ae9O ff_ae9N c_ae9P. (Free c_ae9P ff_ae9N, f_ae7f ~ Eff ff_ae9N es_ae9O, (:>) (Tagged tag_ae9M (Shift ans_ae7e ref_ae7c)) es_ae9O) => ref_ae7c a_X0 -> a_X0 -> f_ae7f ans_ae7e
+ Data.Effect.Shift: call'' :: forall {k} (tag :: k) ref a ans f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Shift ans ref) :> es) => ref a -> a -> f ans
- Data.Effect.Shift: call'_ :: forall (ref_ae7c :: Type -> Type) (a_X0 :: Type) (ans_ae7e :: Type) f_ae7f es_ae9T ff_ae9S c_ae9U. (Free c_ae9U ff_ae9S, f_ae7f ~ Eff ff_ae9S es_ae9T, In (Shift ans_ae7e ref_ae7c) es_ae9T) => ref_ae7c a_X0 -> a_X0 -> f_ae7f ans_ae7e
+ Data.Effect.Shift: call'_ :: forall ref a ans f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Shift ans ref) es) => ref a -> a -> f ans
- Data.Effect.Shift: data Shift ans ref :: Effect
+ Data.Effect.Shift: data Shift ans (ref :: Type -> Type) (a :: Type -> Type) b
- Data.Effect.Shift: getShiftCC :: forall es ans ref ff c. (Shift ans ref :> es, Monad (Eff ff es), Free c ff) => Eff ff es (Eff ff es ans)
+ Data.Effect.Shift: getShiftCC :: forall (es :: [Effect]) ans (ref :: Type -> Type) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Shift ans ref :> es, Monad (Eff ff es), Free c ff) => Eff ff es (Eff ff es ans)
- Data.Effect.Shift: runCCAsShift :: forall a es ans ref ff c. (Shift ans ref :> es, Monad (Eff ff es), Free c ff) => Eff ff (CC ref ': es) a -> Eff ff es a
+ Data.Effect.Shift: runCCAsShift :: forall a (es :: [Effect]) ans (ref :: Type -> Type) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Shift ans ref :> es, Monad (Eff ff es), Free c ff) => Eff ff (CC ref ': es) a -> Eff ff es a
- Data.Effect.Shift: runCCOnShift :: forall a es ans ref ff c. (Shift ans ref :> es, Monad (Eff ff es), Free c ff) => Eff ff (CC (Op (Eff ff es ans)) ': es) a -> Eff ff es a
+ Data.Effect.Shift: runCCOnShift :: forall a (es :: [Effect]) ans (ref :: Type -> Type) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Shift ans ref :> es, Monad (Eff ff es), Free c ff) => Eff ff (CC (Op (Eff ff es ans)) ': es) a -> Eff ff es a
- Data.Effect.Shift: shift :: forall a es ans ref ff c. (Shift ans ref :> es, Monad (Eff ff es), Free c ff) => ((a -> Eff ff es ans) -> Eff ff es ans) -> Eff ff es a
+ Data.Effect.Shift: shift :: forall a (es :: [Effect]) ans (ref :: Type -> Type) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Shift ans ref :> es, Monad (Eff ff es), Free c ff) => ((a -> Eff ff es ans) -> Eff ff es ans) -> Eff ff es a
- Data.Effect.Shift: subShift :: forall a b es ans ref ff c. (Shift ans ref :> es, Monad (Eff ff es), Free c ff) => (ref a -> Eff ff es b) -> (a -> Eff ff es b) -> Eff ff es b
+ Data.Effect.Shift: subShift :: forall a b (es :: [Effect]) ans ref (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Shift ans ref :> es, Monad (Eff ff es), Free c ff) => (ref a -> Eff ff es b) -> (a -> Eff ff es b) -> Eff ff es b
- Data.Effect.Shift: subShiftFork :: forall (ans_ae78 :: Type) (ref_ae79 :: Type -> Type) (a_X0 :: Type) f_ae7a es_ae9o ff_ae9n c_ae9p. (Free c_ae9p ff_ae9n, f_ae7a ~ Eff ff_ae9n es_ae9o, (:>) (Shift ans_ae78 ref_ae79) es_ae9o) => f_ae7a (Either (ref_ae79 a_X0) a_X0)
+ Data.Effect.Shift: subShiftFork :: forall ans ref a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Shift ans ref :> es) => f (Either (ref a) a)
- Data.Effect.Shift: subShiftFork' :: forall key_ae9q (ans_ae78 :: Type) (ref_ae79 :: Type -> Type) (a_X0 :: Type) f_ae7a es_ae9s ff_ae9r c_ae9t. (Free c_ae9t ff_ae9r, f_ae7a ~ Eff ff_ae9r es_ae9s, Has key_ae9q (Shift ans_ae78 ref_ae79) es_ae9s) => f_ae7a (Either (ref_ae79 a_X0) a_X0)
+ Data.Effect.Shift: subShiftFork' :: forall {k} (key :: k) ans ref a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (Shift ans ref) es) => f (Either (ref a) a)
- Data.Effect.Shift: subShiftFork'' :: forall tag_ae9u (ans_ae78 :: Type) (ref_ae79 :: Type -> Type) (a_X0 :: Type) f_ae7a es_ae9w ff_ae9v c_ae9x. (Free c_ae9x ff_ae9v, f_ae7a ~ Eff ff_ae9v es_ae9w, (:>) (Tagged tag_ae9u (Shift ans_ae78 ref_ae79)) es_ae9w) => f_ae7a (Either (ref_ae79 a_X0) a_X0)
+ Data.Effect.Shift: subShiftFork'' :: forall {k} (tag :: k) ans ref a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (Shift ans ref) :> es) => f (Either (ref a) a)
- Data.Effect.Shift: subShiftFork'_ :: forall (ans_ae78 :: Type) (ref_ae79 :: Type -> Type) (a_X0 :: Type) f_ae7a es_ae9z ff_ae9y c_ae9A. (Free c_ae9A ff_ae9y, f_ae7a ~ Eff ff_ae9y es_ae9z, In (Shift ans_ae78 ref_ae79) es_ae9z) => f_ae7a (Either (ref_ae79 a_X0) a_X0)
+ Data.Effect.Shift: subShiftFork'_ :: forall ans ref a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (Shift ans ref) es) => f (Either (ref a) a)
- Data.Effect.State: askToGet :: forall r es ff a c. (State r `In` es, Free c ff) => Eff ff (Ask r ': es) a -> Eff ff es a
+ Data.Effect.State: askToGet :: forall r (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (In (State r) es, Free c ff) => Eff ff (Ask r ': es) a -> Eff ff es a
- Data.Effect.State: data () => State s (a :: Type -> Type) b
+ Data.Effect.State: data State s (a :: Type -> Type) b
- Data.Effect.State: evalStateIORef :: forall s es ff a c. (Emb IO :> es, Monad (Eff ff es), Free c ff) => s -> Eff ff (State s ': es) a -> Eff ff es a
+ Data.Effect.State: evalStateIORef :: forall s (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (Emb IO :> es, Monad (Eff ff es), Free c ff) => s -> Eff ff (State s ': es) a -> Eff ff es a
- Data.Effect.State: execStateIORef :: forall s es ff a c. (Emb IO :> es, Monad (Eff ff es), Free c ff) => s -> Eff ff (State s ': es) a -> Eff ff es s
+ Data.Effect.State: execStateIORef :: forall s (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (Emb IO :> es, Monad (Eff ff es), Free c ff) => s -> Eff ff (State s ': es) a -> Eff ff es s
- Data.Effect.State: get :: forall (s_acQE :: Type) a_acQF es_acQM ff_acQL c_acQN. (Free c_acQN ff_acQL, a_acQF ~ Eff ff_acQL es_acQM, (:>) (State s_acQE) es_acQM) => a_acQF s_acQE
+ Data.Effect.State: get :: forall s a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, State s :> es) => a s
- Data.Effect.State: get' :: forall key_acQO (s_acQE :: Type) a_acQF es_acQQ ff_acQP c_acQR. (Free c_acQR ff_acQP, a_acQF ~ Eff ff_acQP es_acQQ, Has key_acQO (State s_acQE) es_acQQ) => a_acQF s_acQE
+ Data.Effect.State: get' :: forall {k} (key :: k) s a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key (State s) es) => a s
- Data.Effect.State: get'' :: forall tag_acQS (s_acQE :: Type) a_acQF es_acQU ff_acQT c_acQV. (Free c_acQV ff_acQT, a_acQF ~ Eff ff_acQT es_acQU, (:>) (Tagged tag_acQS (State s_acQE)) es_acQU) => a_acQF s_acQE
+ Data.Effect.State: get'' :: forall {k} (tag :: k) s a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag (State s) :> es) => a s
- Data.Effect.State: get'_ :: forall (s_acQE :: Type) a_acQF es_acQX ff_acQW c_acQY. (Free c_acQY ff_acQW, a_acQF ~ Eff ff_acQW es_acQX, In (State s_acQE) es_acQX) => a_acQF s_acQE
+ Data.Effect.State: get'_ :: forall s a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In (State s) es) => a s
- Data.Effect.State: gets :: forall s es a ff c. (State s :> es, Functor (Eff ff es), Free c ff) => (s -> a) -> Eff ff es a
+ Data.Effect.State: gets :: forall s (es :: [Effect]) a (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (State s :> es, Functor (Eff ff es), Free c ff) => (s -> a) -> Eff ff es a
- Data.Effect.State: localToState :: forall r es ff a c. (State r `In` es, Monad (Eff ff es), Free c ff) => Eff ff (Local r ': es) a -> Eff ff es a
+ Data.Effect.State: localToState :: forall r (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (In (State r) es, Monad (Eff ff es), Free c ff) => Eff ff (Local r ': es) a -> Eff ff es a
- Data.Effect.State: modify :: forall s es ff c. (State s :> es, Monad (Eff ff es), Free c ff) => (s -> s) -> Eff ff es ()
+ Data.Effect.State: modify :: forall s (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (State s :> es, Monad (Eff ff es), Free c ff) => (s -> s) -> Eff ff es ()
- Data.Effect.State: put :: forall (s_acQE :: Type) a_acQF es_acR0 ff_acQZ c_acR1. (Free c_acR1 ff_acQZ, a_acQF ~ Eff ff_acQZ es_acR0, (:>) (State s_acQE) es_acR0) => s_acQE -> a_acQF ()
+ Data.Effect.State: put :: forall s a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, State s :> es) => s -> a ()
- Data.Effect.State: put' :: forall key_acR3 (s_acQE :: Type) a_acQF es_acR5 ff_acR4 c_acR6. (Free c_acR6 ff_acR4, a_acQF ~ Eff ff_acR4 es_acR5, Has key_acR3 (State s_acQE) es_acR5) => s_acQE -> a_acQF ()
+ Data.Effect.State: put' :: forall {k} (key :: k) s a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key (State s) es) => s -> a ()
- Data.Effect.State: put'' :: forall tag_acR8 (s_acQE :: Type) a_acQF es_acRa ff_acR9 c_acRb. (Free c_acRb ff_acR9, a_acQF ~ Eff ff_acR9 es_acRa, (:>) (Tagged tag_acR8 (State s_acQE)) es_acRa) => s_acQE -> a_acQF ()
+ Data.Effect.State: put'' :: forall {k} (tag :: k) s a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag (State s) :> es) => s -> a ()
- Data.Effect.State: put'_ :: forall (s_acQE :: Type) a_acQF es_acRe ff_acRd c_acRf. (Free c_acRf ff_acRd, a_acQF ~ Eff ff_acRd es_acRe, In (State s_acQE) es_acRe) => s_acQE -> a_acQF ()
+ Data.Effect.State: put'_ :: forall s a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In (State s) es) => s -> a ()
- Data.Effect.State: runStateIORef :: forall s es ff a c. (Emb IO :> es, Monad (Eff ff es), Free c ff) => s -> Eff ff (State s ': es) a -> Eff ff es (s, a)
+ Data.Effect.State: runStateIORef :: forall s (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (Emb IO :> es, Monad (Eff ff es), Free c ff) => s -> Eff ff (State s ': es) a -> Eff ff es (s, a)
- Data.Effect.Unlift: data () => UnliftBase (b :: Type -> Type) (f :: Type -> Type) a
+ Data.Effect.Unlift: data UnliftBase (b :: Type -> Type) (f :: Type -> Type) a
- Data.Effect.Unlift: runUnliftBase :: forall b ff a c. (c b, Free c ff) => Eff ff '[UnliftBase b, Emb b] a -> b a
+ Data.Effect.Unlift: runUnliftBase :: forall b (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (c b, Free c ff) => Eff ff '[UnliftBase b, Emb b] a -> b a
- Data.Effect.Unlift: runUnliftIO :: (MonadUnliftIO m, Free c ff, c m) => Eff ff '[UnliftIO, Emb m] a -> m a
+ Data.Effect.Unlift: runUnliftIO :: forall m (c :: (Type -> Type) -> Constraint) (ff :: (Type -> Type) -> Type -> Type) a. (MonadUnliftIO m, Free c ff, c m) => Eff ff '[UnliftIO, Emb m] a -> m a
- Data.Effect.Unlift: withRunInBase :: forall (b_acsC :: Type -> Type) (a_acsE :: Type) f_acsD es_acsL ff_acsK c_acsM. (Free c_acsM ff_acsK, f_acsD ~ Eff ff_acsK es_acsL, (:>) (UnliftBase b_acsC) es_acsL) => ((forall (x_acsJ :: Type). f_acsD x_acsJ -> b_acsC x_acsJ) -> b_acsC a_acsE) -> f_acsD a_acsE
+ Data.Effect.Unlift: withRunInBase :: forall b a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, UnliftBase b :> es) => ((forall x. () => f x -> b x) -> b a) -> f a
- Data.Effect.Unlift: withRunInBase' :: forall key_acsO (b_acsC :: Type -> Type) (a_acsE :: Type) f_acsD es_acsQ ff_acsP c_acsR. (Free c_acsR ff_acsP, f_acsD ~ Eff ff_acsP es_acsQ, Has key_acsO (UnliftBase b_acsC) es_acsQ) => ((forall (x_acsJ :: Type). f_acsD x_acsJ -> b_acsC x_acsJ) -> b_acsC a_acsE) -> f_acsD a_acsE
+ Data.Effect.Unlift: withRunInBase' :: forall {k} (key :: k) b a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Has key (UnliftBase b) es) => ((forall x. () => f x -> b x) -> b a) -> f a
- Data.Effect.Unlift: withRunInBase'' :: forall tag_acsT (b_acsC :: Type -> Type) (a_acsE :: Type) f_acsD es_acsV ff_acsU c_acsW. (Free c_acsW ff_acsU, f_acsD ~ Eff ff_acsU es_acsV, (:>) (Tagged tag_acsT (UnliftBase b_acsC)) es_acsV) => ((forall (x_acsJ :: Type). f_acsD x_acsJ -> b_acsC x_acsJ) -> b_acsC a_acsE) -> f_acsD a_acsE
+ Data.Effect.Unlift: withRunInBase'' :: forall {k} (tag :: k) b a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, Tagged tag (UnliftBase b) :> es) => ((forall x. () => f x -> b x) -> b a) -> f a
- Data.Effect.Unlift: withRunInBase'_ :: forall (b_acsC :: Type -> Type) (a_acsE :: Type) f_acsD es_acsZ ff_acsY c_act0. (Free c_act0 ff_acsY, f_acsD ~ Eff ff_acsY es_acsZ, In (UnliftBase b_acsC) es_acsZ) => ((forall (x_acsJ :: Type). f_acsD x_acsJ -> b_acsC x_acsJ) -> b_acsC a_acsE) -> f_acsD a_acsE
+ Data.Effect.Unlift: withRunInBase'_ :: forall b a f (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, f ~ Eff ff es, In (UnliftBase b) es) => ((forall x. () => f x -> b x) -> b a) -> f a
- Data.Effect.Unlift: withRunInIO :: forall es ff a c. (UnliftIO :> es, Free c ff) => ((Eff ff es ~> IO) -> IO a) -> Eff ff es a
+ Data.Effect.Unlift: withRunInIO :: forall (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (UnliftIO :> es, Free c ff) => ((Eff ff es ~> IO) -> IO a) -> Eff ff es a
- Data.Effect.Writer: censor :: forall (w_ac3p :: Type) (b_ac3r :: Type) a_ac3q es_ac3S ff_ac3R c_ac3T. (Free c_ac3T ff_ac3R, a_ac3q ~ Eff ff_ac3R es_ac3S, (:>) (WriterH w_ac3p) es_ac3S) => (w_ac3p -> w_ac3p) -> a_ac3q b_ac3r -> a_ac3q b_ac3r
+ Data.Effect.Writer: censor :: forall w b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, WriterH w :> es) => (w -> w) -> a b -> a b
- Data.Effect.Writer: censor' :: forall key_ac3W (w_ac3p :: Type) (b_ac3r :: Type) a_ac3q es_ac3Y ff_ac3X c_ac3Z. (Free c_ac3Z ff_ac3X, a_ac3q ~ Eff ff_ac3X es_ac3Y, Has key_ac3W (WriterH w_ac3p) es_ac3Y) => (w_ac3p -> w_ac3p) -> a_ac3q b_ac3r -> a_ac3q b_ac3r
+ Data.Effect.Writer: censor' :: forall {k} (key :: k) w b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key (WriterH w) es) => (w -> w) -> a b -> a b
- Data.Effect.Writer: censor'' :: forall tag_ac42 (w_ac3p :: Type) (b_ac3r :: Type) a_ac3q es_ac44 ff_ac43 c_ac45. (Free c_ac45 ff_ac43, a_ac3q ~ Eff ff_ac43 es_ac44, (:>) (Tagged tag_ac42 (WriterH w_ac3p)) es_ac44) => (w_ac3p -> w_ac3p) -> a_ac3q b_ac3r -> a_ac3q b_ac3r
+ Data.Effect.Writer: censor'' :: forall {k} (tag :: k) w b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag (WriterH w) :> es) => (w -> w) -> a b -> a b
- Data.Effect.Writer: censor'_ :: forall (w_ac3p :: Type) (b_ac3r :: Type) a_ac3q es_ac49 ff_ac48 c_ac4a. (Free c_ac4a ff_ac48, a_ac3q ~ Eff ff_ac48 es_ac49, In (WriterH w_ac3p) es_ac49) => (w_ac3p -> w_ac3p) -> a_ac3q b_ac3r -> a_ac3q b_ac3r
+ Data.Effect.Writer: censor'_ :: forall w b a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In (WriterH w) es) => (w -> w) -> a b -> a b
- Data.Effect.Writer: censorPre :: forall w es ff a c. (Tell w `In` es, Free c ff) => (w -> w) -> Eff ff es a -> Eff ff es a
+ Data.Effect.Writer: censorPre :: forall w (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) a (c :: (Type -> Type) -> Constraint). (In (Tell w) es, Free c ff) => (w -> w) -> Eff ff es a -> Eff ff es a
- Data.Effect.Writer: data () => Tell w (a :: Type -> Type) b
+ Data.Effect.Writer: data Tell w (a :: Type -> Type) b
- Data.Effect.Writer: data () => WriterH w (a :: Type -> Type) b
+ Data.Effect.Writer: data WriterH w (a :: Type -> Type) b
- Data.Effect.Writer: listen :: forall (a1_ac3s :: Type) (w_ac3p :: Type) a_ac3q es_ac3A ff_ac3z c_ac3B. (Free c_ac3B ff_ac3z, a_ac3q ~ Eff ff_ac3z es_ac3A, (:>) (WriterH w_ac3p) es_ac3A) => a_ac3q a1_ac3s -> a_ac3q (w_ac3p, a1_ac3s)
+ Data.Effect.Writer: listen :: forall a1 w a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, WriterH w :> es) => a a1 -> a (w, a1)
- Data.Effect.Writer: listen' :: forall key_ac3D (a1_ac3s :: Type) (w_ac3p :: Type) a_ac3q es_ac3F ff_ac3E c_ac3G. (Free c_ac3G ff_ac3E, a_ac3q ~ Eff ff_ac3E es_ac3F, Has key_ac3D (WriterH w_ac3p) es_ac3F) => a_ac3q a1_ac3s -> a_ac3q (w_ac3p, a1_ac3s)
+ Data.Effect.Writer: listen' :: forall {k} (key :: k) a1 w a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key (WriterH w) es) => a a1 -> a (w, a1)
- Data.Effect.Writer: listen'' :: forall tag_ac3I (a1_ac3s :: Type) (w_ac3p :: Type) a_ac3q es_ac3K ff_ac3J c_ac3L. (Free c_ac3L ff_ac3J, a_ac3q ~ Eff ff_ac3J es_ac3K, (:>) (Tagged tag_ac3I (WriterH w_ac3p)) es_ac3K) => a_ac3q a1_ac3s -> a_ac3q (w_ac3p, a1_ac3s)
+ Data.Effect.Writer: listen'' :: forall {k} (tag :: k) a1 w a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag (WriterH w) :> es) => a a1 -> a (w, a1)
- Data.Effect.Writer: listen'_ :: forall (a1_ac3s :: Type) (w_ac3p :: Type) a_ac3q es_ac3O ff_ac3N c_ac3P. (Free c_ac3P ff_ac3N, a_ac3q ~ Eff ff_ac3N es_ac3O, In (WriterH w_ac3p) es_ac3O) => a_ac3q a1_ac3s -> a_ac3q (w_ac3p, a1_ac3s)
+ Data.Effect.Writer: listen'_ :: forall a1 w a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In (WriterH w) es) => a a1 -> a (w, a1)
- Data.Effect.Writer: tell :: forall (w_abCf :: Type) a_abCg es_abCl ff_abCk c_abCm. (Free c_abCm ff_abCk, a_abCg ~ Eff ff_abCk es_abCl, (:>) (Tell w_abCf) es_abCl) => w_abCf -> a_abCg ()
+ Data.Effect.Writer: tell :: forall w a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tell w :> es) => w -> a ()
- Data.Effect.Writer: tell' :: forall key_abCo (w_abCf :: Type) a_abCg es_abCq ff_abCp c_abCr. (Free c_abCr ff_abCp, a_abCg ~ Eff ff_abCp es_abCq, Has key_abCo (Tell w_abCf) es_abCq) => w_abCf -> a_abCg ()
+ Data.Effect.Writer: tell' :: forall {k} (key :: k) w a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Has key (Tell w) es) => w -> a ()
- Data.Effect.Writer: tell'' :: forall tag_abCt (w_abCf :: Type) a_abCg es_abCv ff_abCu c_abCw. (Free c_abCw ff_abCu, a_abCg ~ Eff ff_abCu es_abCv, (:>) (Tagged tag_abCt (Tell w_abCf)) es_abCv) => w_abCf -> a_abCg ()
+ Data.Effect.Writer: tell'' :: forall {k} (tag :: k) w a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, Tagged tag (Tell w) :> es) => w -> a ()
- Data.Effect.Writer: tell'_ :: forall (w_abCf :: Type) a_abCg es_abCz ff_abCy c_abCA. (Free c_abCA ff_abCy, a_abCg ~ Eff ff_abCy es_abCz, In (Tell w_abCf) es_abCz) => w_abCf -> a_abCg ()
+ Data.Effect.Writer: tell'_ :: forall w a (es :: [Effect]) (ff :: (Type -> Type) -> Type -> Type) (c :: (Type -> Type) -> Constraint). (Free c ff, a ~ Eff ff es, In (Tell w) es) => w -> a ()

Files

data-effects.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.0 name:               data-effects-version:            0.4.0.2+version:            0.4.1.0  -- A short (one-line) description of the package. synopsis: A basic framework for effect systems based on effects represented by GADTs.@@ -39,7 +39,7 @@ source-repository head     type: git     location: https://github.com/sayo-hs/data-effects-    tag: v0.4.0.2+    tag: v0.4.1.0     subdir: data-effects  library@@ -97,7 +97,7 @@         time                        >= 1.11.1 && < 1.15,         infinite-list               ^>= 0.1.1,         unliftio                    ^>= 0.2,-        containers > 0.6.5 && < 0.8,+        containers > 0.6.5 && < 0.9,         co-log-core ^>= 0.3.2,         unbounded-delays ^>= 0.1.1,         time >= 1.11.1 && < 1.15,
src/Data/Effect/Provider.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE UndecidableInstances #-}+{-# OPTIONS_GHC -Wno-redundant-constraints #-}  -- SPDX-License-Identifier: MPL-2.0 @@ -15,7 +16,7 @@ module Data.Effect.Provider where  import Control.Effect.Transform (raise, raisePrefix, raisePrefix1)-import Data.Effect.OpenUnion (Each, KnownLength, type (++))+import Data.Effect.OpenUnion (Each, KnownLength, PolyHFunctors, type (++)) import Data.Functor.Const (Const (Const)) import Data.Functor.Identity (Identity (Identity), runIdentity) @@ -68,6 +69,19 @@         loop $ run i (unScopeC $ f $ ScopeC . raisePrefix1 @es @s . raise @(Scoped ff t i es r)) {-# INLINE runScoped #-} +runRegionScoped+    :: forall t i a es r ff c+     . (PolyHFunctors r, KnownLength es, Free c ff)+    => ( forall s x+          . i s+         -> Eff ff (Each es s ++ Scoped ff t i es r ': r) x+         -> Eff ff (Scoped ff t i es r ': r) (t s x)+       )+    -> Eff ff (Scoped ff t i es r ': r) a+    -> Eff ff r a+runRegionScoped = runScoped+{-# INLINE runRegionScoped #-}+ scoped     :: forall t i s a es' es r ff c      . (Scoped ff t i es r :> es', Free c ff)@@ -96,6 +110,19 @@         loop $ run i (unScopeC_ . getConst1 $ f $ Const1 . ScopeC_ . raisePrefix @es . raise @(Scoped_ ff t i es r)) {-# INLINE runScoped_ #-} +runRegionScoped_+    :: forall t i a es r ff c+     . (PolyHFunctors r, KnownLength es, Free c ff)+    => ( forall p x+          . i p+         -> Eff ff (es ++ Scoped_ ff t i es r ': r) x+         -> Eff ff (Scoped_ ff t i es r ': r) (t p x)+       )+    -> Eff ff (Scoped_ ff t i es r ': r) a+    -> Eff ff r a+runRegionScoped_ = runScoped_+{-# INLINE runRegionScoped_ #-}+ scoped_     :: forall t i s a es' es r ff c      . (Scoped_ ff t i es r :> es', Free c ff)@@ -120,6 +147,19 @@ runProvider run = runScoped_ \(Const i) a -> Const1 <$> run i a {-# INLINE runProvider #-} +runRegionProvider+    :: forall t i a es r ff c+     . (PolyHFunctors r, forall es'. Functor (Eff ff es'), KnownLength es, Free c ff)+    => ( forall x+          . i+         -> Eff ff (es ++ Provider ff t i es r ': r) x+         -> Eff ff (Provider ff t i es r ': r) (t x)+       )+    -> Eff ff (Provider ff t i es r ': r) a+    -> Eff ff r a+runRegionProvider = runProvider+{-# INLINE runRegionProvider #-}+ provide     :: forall t i a es' es r ff c      . (Provider ff t i es r :> es', forall es''. Functor (Eff ff es''), Free c ff)@@ -144,6 +184,19 @@ runProvider_ run = runProvider \i a -> Identity <$> run i a {-# INLINE runProvider_ #-} +runRegionProvider_+    :: forall i a es r ff c+     . (PolyHFunctors r, forall es'. Functor (Eff ff es'), KnownLength es, Free c ff)+    => ( forall x+          . i+         -> Eff ff (es ++ Provider ff Identity i es r ': r) x+         -> Eff ff (Provider ff Identity i es r ': r) x+       )+    -> Eff ff (Provider ff Identity i es r ': r) a+    -> Eff ff r a+runRegionProvider_ = runProvider_+{-# INLINE runRegionProvider_ #-}+ provide_     :: forall i a es' es r ff c      . (Provider ff Identity i es r :> es', forall es''. Functor (Eff ff es''), Free c ff)@@ -166,6 +219,18 @@     -> Eff ff r a runProvider__ run = runProvider_ \() -> run {-# INLINE runProvider__ #-}++runRegionProvider__+    :: forall a es r ff c+     . (PolyHFunctors r, forall es'. Functor (Eff ff es'), KnownLength es, Free c ff)+    => ( forall x+          . Eff ff (es ++ Provider ff Identity () es r ': r) x+         -> Eff ff (Provider ff Identity () es r ': r) x+       )+    -> Eff ff (Provider ff Identity () es r ': r) a+    -> Eff ff r a+runRegionProvider__ = runProvider__+{-# INLINE runRegionProvider__ #-}  provide__     :: forall a es' es r ff c
src/Prelude.hs view
@@ -21,6 +21,5 @@ import Data.Effect.OpenUnion (Has, In, type (:>)) import Data.Effect.TH import Data.Kind (Type)-import Data.List.Infinite (Infinite ((:<)))  import "base" Prelude