-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | A basic framework for effect systems based on effects represented by GADTs.
--
-- A basic framework for a Haskell effect system library based on
-- GADTs-based effect representations with a style that separates
-- first-order effects and higher-order effects.
--
-- This library set was created by being separated from the Heftia
-- extensible effects library.
@package data-effects
@version 0.1.2.0
module Data.Effect.Writer
data Tell w a
[Tell] :: w -> Tell w ()
data WriterH w f a
[Listen] :: f a -> WriterH w f (w, a)
[Censor] :: (w -> w) -> f a -> WriterH w f a
type LTell w_aamt = LiftIns (Tell w_aamt)
censor'' :: forall key_aawJ (w_aamq :: Type) (a_aams :: Type) f_aamr. SendSigBy key_aawJ (WriterH w_aamq) f_aamr => (w_aamq -> w_aamq) -> f_aamr a_aams -> f_aamr a_aams
censor' :: forall tag_aawG (w_aamq :: Type) (a_aams :: Type) f_aamr. SendSig (TagH (WriterH w_aamq) tag_aawG) f_aamr => (w_aamq -> w_aamq) -> f_aamr a_aams -> f_aamr a_aams
censor :: forall (w_aamq :: Type) (a_aams :: Type) f_aamr. SendSig (WriterH w_aamq) f_aamr => (w_aamq -> w_aamq) -> f_aamr a_aams -> f_aamr a_aams
listen'' :: forall key_aawC (a_X0 :: Type) (w_aamp :: Type) f_aamn. SendSigBy key_aawC (WriterH w_aamp) f_aamn => f_aamn a_X0 -> f_aamn (w_aamp, a_X0)
listen' :: forall tag_aawA (a_X0 :: Type) (w_aamp :: Type) f_aamn. SendSig (TagH (WriterH w_aamp) tag_aawA) f_aamn => f_aamn a_X0 -> f_aamn (w_aamp, a_X0)
listen :: forall (a_X0 :: Type) (w_aamp :: Type) f_aamn. SendSig (WriterH w_aamp) f_aamn => f_aamn a_X0 -> f_aamn (w_aamp, a_X0)
pattern LTell :: () => (a_aawt ~ (), ()) => w_aamv -> LiftIns (Tell w_aamv) f_aaws a_aawt
tell'' :: forall key_aawo (w_aamv :: Type) f_aawp. SendInsBy key_aawo (Tell w_aamv) f_aawp => w_aamv -> f_aawp ()
tell' :: forall tag_aawl (w_aamv :: Type) f_aawm. SendIns (Tag (Tell w_aamv) tag_aawl) f_aawm => w_aamv -> f_aawm ()
tell :: forall (w_aamv :: Type) f_aawj. SendIns (Tell w_aamv) f_aawj => w_aamv -> f_aawj ()
pass :: (Tell w <: m, WriterH w <<: m, Monad m) => m (w -> w, a) -> m a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Writer.WriterH w)
module Data.Effect.Unlift
data UnliftBase b f (a :: Type)
[WithRunInBase] :: ((forall x. f x -> b x) -> b a) -> UnliftBase b f a
withRunInBase'' :: forall key_ab7q (b_ab5Y :: Type -> Type) (a_ab5Z :: Type) f_ab5X. SendSigBy key_ab7q (UnliftBase b_ab5Y) f_ab5X => ((forall (x_ab60 :: Type). f_ab5X x_ab60 -> b_ab5Y x_ab60) -> b_ab5Y a_ab5Z) -> f_ab5X a_ab5Z
withRunInBase' :: forall tag_ab7o (b_ab5Y :: Type -> Type) (a_ab5Z :: Type) f_ab5X. SendSig (TagH (UnliftBase b_ab5Y) tag_ab7o) f_ab5X => ((forall (x_ab60 :: Type). f_ab5X x_ab60 -> b_ab5Y x_ab60) -> b_ab5Y a_ab5Z) -> f_ab5X a_ab5Z
withRunInBase :: forall (b_ab5Y :: Type -> Type) (a_ab5Z :: Type) f_ab5X. SendSig (UnliftBase b_ab5Y) f_ab5X => ((forall (x_ab60 :: Type). f_ab5X x_ab60 -> b_ab5Y x_ab60) -> b_ab5Y a_ab5Z) -> f_ab5X a_ab5Z
type UnliftIO = UnliftBase IO
pattern WithRunInIO :: ((f ~> IO) -> IO a) -> UnliftIO f a
withRunInIO :: UnliftIO <<: f => ((f ~> IO) -> IO a) -> f a
withRunInIO' :: forall tag f a. (UnliftIO ## tag) <<: f => ((f ~> IO) -> IO a) -> f a
withRunInIO'' :: forall key f a. SendSigBy key UnliftIO f => ((f ~> IO) -> IO a) -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Unlift.UnliftBase b)
module Data.Effect.State
data State s a
[Get] :: State s s
[Put] :: s -> State s ()
type LState s_abmo = LiftIns (State s_abmo)
pattern LPut :: () => (a_abnp ~ (), ()) => s_abmr -> LiftIns (State s_abmr) f_abno a_abnp
pattern LGet :: () => (a_abnm ~ s_abmq, ()) => LiftIns (State s_abmq) f_abnl a_abnm
put'' :: forall key_abni (s_abmr :: Type) f_abnj. SendInsBy key_abni (State s_abmr) f_abnj => s_abmr -> f_abnj ()
put' :: forall tag_abnf (s_abmr :: Type) f_abng. SendIns (Tag (State s_abmr) tag_abnf) f_abng => s_abmr -> f_abng ()
put :: forall (s_abmr :: Type) f_abnd. SendIns (State s_abmr) f_abnd => s_abmr -> f_abnd ()
get'' :: forall key_abnb (s_abmq :: Type) f_abnc. SendInsBy key_abnb (State s_abmq) f_abnc => f_abnc s_abmq
get' :: forall tag_abn9 (s_abmq :: Type) f_abna. SendIns (Tag (State s_abmq) tag_abn9) f_abna => f_abna s_abmq
get :: forall (s_abmq :: Type) f_abn8. SendIns (State s_abmq) f_abn8 => f_abn8 s_abmq
gets :: (State s <: f, Functor f) => (s -> a) -> f a
modify :: (State s <: m, Monad m) => (s -> s) -> m ()
module Data.Effect.ShiftReset
data Shift' (r :: Type) m a
[Shift] :: forall r m a. ((a -> m r) -> m r) -> Shift' r m a
data ShiftKey
type Shift r_abIT = (##>) ShiftKey (Shift' r_abIT)
shift :: forall (r_abIW :: Type) (a_abIY :: Type) m_abIX. SendSigBy ShiftKey (Shift' r_abIW) m_abIX => ((a_abIY -> m_abIX r_abIW) -> m_abIX r_abIW) -> m_abIX a_abIY
shift'' :: forall key_abKj (r_abIW :: Type) (a_abIY :: Type) m_abIX. SendSigBy key_abKj (Shift' r_abIW) m_abIX => ((a_abIY -> m_abIX r_abIW) -> m_abIX r_abIW) -> m_abIX a_abIY
shift' :: forall tag_abKh (r_abIW :: Type) (a_abIY :: Type) m_abIX. SendSig (TagH (Shift' r_abIW) tag_abKh) m_abIX => ((a_abIY -> m_abIX r_abIW) -> m_abIX r_abIW) -> m_abIX a_abIY
shift'_ :: forall (r_abIW :: Type) (a_abIY :: Type) m_abIX. SendSig (Shift' r_abIW) m_abIX => ((a_abIY -> m_abIX r_abIW) -> m_abIX r_abIW) -> m_abIX a_abIY
callCC :: forall r m a. (SendSigBy ShiftKey (Shift' r) m, Monad m) => ((a -> m r) -> m a) -> m a
exit :: (SendSigBy ShiftKey (Shift' r) f, Applicative f) => r -> f a
getCC :: (SendSigBy ShiftKey (Shift' r) m, Monad m) => m (m r)
data Shift_ m a
[Shift_] :: (forall (r :: Type). (a -> m r) -> m r) -> Shift_ m a
shift_'' :: forall key_abTr (a_abKy :: Type) m_abKz. SendSigBy key_abTr Shift_ m_abKz => (forall (r_abKA :: Type). (a_abKy -> m_abKz r_abKA) -> m_abKz r_abKA) -> m_abKz a_abKy
shift_' :: forall tag_abTp (a_abKy :: Type) m_abKz. SendSig (TagH Shift_ tag_abTp) m_abKz => (forall (r_abKA :: Type). (a_abKy -> m_abKz r_abKA) -> m_abKz r_abKA) -> m_abKz a_abKy
shift_ :: forall (a_abKy :: Type) m_abKz. SendSig Shift_ m_abKz => (forall (r_abKA :: Type). (a_abKy -> m_abKz r_abKA) -> m_abKz r_abKA) -> m_abKz a_abKy
getCC_ :: (Shift_ <<: m, Monad m) => m (m ())
data Reset m (a :: Type)
[Reset] :: m a -> Reset m a
reset'' :: forall key_abXQ (a_abTC :: Type) m_abTB. SendSigBy key_abXQ Reset m_abTB => m_abTB a_abTC -> m_abTB a_abTC
reset' :: forall tag_abXO (a_abTC :: Type) m_abTB. SendSig (TagH Reset tag_abXO) m_abTB => m_abTB a_abTC -> m_abTB a_abTC
reset :: forall (a_abTC :: Type) m_abTB. SendSig Reset m_abTB => m_abTB a_abTC -> m_abTB a_abTC
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor Data.Effect.ShiftReset.Reset
-- | An effect capable of providing bracket semantics.
module Data.Effect.Resource
-- | An effect capable of providing bracket semantics.
data Resource f a
-- | Allocate a resource, use it, and clean it up afterwards.
[Bracket] :: f a -> (a -> f ()) -> (a -> f b) -> Resource f b
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
[BracketOnExcept] :: f a -> (a -> f ()) -> (a -> f b) -> Resource f b
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
bracketOnExcept'' :: forall key_acmY (a_X0 :: Type) (b_acl6 :: Type) f_acl4. SendSigBy key_acmY Resource f_acl4 => f_acl4 a_X0 -> (a_X0 -> f_acl4 ()) -> (a_X0 -> f_acl4 b_acl6) -> f_acl4 b_acl6
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
bracketOnExcept' :: forall tag_acmU (a_X0 :: Type) (b_acl6 :: Type) f_acl4. SendSig (TagH Resource tag_acmU) f_acl4 => f_acl4 a_X0 -> (a_X0 -> f_acl4 ()) -> (a_X0 -> f_acl4 b_acl6) -> f_acl4 b_acl6
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
bracketOnExcept :: forall (a_X0 :: Type) (b_acl6 :: Type) f_acl4. SendSig Resource f_acl4 => f_acl4 a_X0 -> (a_X0 -> f_acl4 ()) -> (a_X0 -> f_acl4 b_acl6) -> f_acl4 b_acl6
-- | Allocate a resource, use it, and clean it up afterwards.
bracket'' :: forall key_acmN (a_X0 :: Type) (b_acl3 :: Type) f_acl1. SendSigBy key_acmN Resource f_acl1 => f_acl1 a_X0 -> (a_X0 -> f_acl1 ()) -> (a_X0 -> f_acl1 b_acl3) -> f_acl1 b_acl3
-- | Allocate a resource, use it, and clean it up afterwards.
bracket' :: forall tag_acmJ (a_X0 :: Type) (b_acl3 :: Type) f_acl1. SendSig (TagH Resource tag_acmJ) f_acl1 => f_acl1 a_X0 -> (a_X0 -> f_acl1 ()) -> (a_X0 -> f_acl1 b_acl3) -> f_acl1 b_acl3
-- | Allocate a resource, use it, and clean it up afterwards.
bracket :: forall (a_X0 :: Type) (b_acl3 :: Type) f_acl1. SendSig Resource f_acl1 => f_acl1 a_X0 -> (a_X0 -> f_acl1 ()) -> (a_X0 -> f_acl1 b_acl3) -> f_acl1 b_acl3
bracket_ :: (Resource <<: f, Functor f) => f a -> f b -> f c -> f c
bracketOnExcept_ :: (Resource <<: f, Functor f) => f a -> f b -> f c -> f c
finally :: (Resource <<: f, Applicative f) => f a -> f () -> f a
finally_ :: (Resource <<: f, Applicative f) => f a -> f b -> f a
onException :: (Resource <<: f, Applicative f) => f a -> f () -> f a
onException_ :: (Resource <<: f, Applicative f) => f a -> f b -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor Data.Effect.Resource.Resource
module Data.Effect.Reader
data Ask r (a :: Type)
[Ask] :: Ask r r
data Local r f (a :: Type)
[Local] :: (r -> r) -> f a -> Local r f a
type LAsk r_acXX = LiftIns (Ask r_acXX)
local'' :: forall key_acZo (r_acXU :: Type) (a_acXW :: Type) f_acXV. SendSigBy key_acZo (Local r_acXU) f_acXV => (r_acXU -> r_acXU) -> f_acXV a_acXW -> f_acXV a_acXW
local' :: forall tag_acZl (r_acXU :: Type) (a_acXW :: Type) f_acXV. SendSig (TagH (Local r_acXU) tag_acZl) f_acXV => (r_acXU -> r_acXU) -> f_acXV a_acXW -> f_acXV a_acXW
local :: forall (r_acXU :: Type) (a_acXW :: Type) f_acXV. SendSig (Local r_acXU) f_acXV => (r_acXU -> r_acXU) -> f_acXV a_acXW -> f_acXV a_acXW
pattern LAsk :: () => (a_acZf ~ r_acXZ, ()) => LiftIns (Ask r_acXZ) f_acZe a_acZf
ask'' :: forall key_acZc (r_acXZ :: Type) f_acZd. SendInsBy key_acZc (Ask r_acXZ) f_acZd => f_acZd r_acXZ
ask' :: forall tag_acZa (r_acXZ :: Type) f_acZb. SendIns (Tag (Ask r_acXZ) tag_acZa) f_acZb => f_acZb r_acXZ
ask :: forall (r_acXZ :: Type) f_acZ9. SendIns (Ask r_acXZ) f_acZ9 => f_acZ9 r_acXZ
asks :: (Ask r <: f, Functor f) => (r -> a) -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Reader.Local r)
module Data.Effect.Provider.Implicit
data ImplicitProvider' c i e (f :: Type -> Type) (a :: Type)
[WithImplicit] :: i -> (forall g. (c g, e g) => (forall x. f x -> g x) -> g a) -> ImplicitProvider' c i e f a
data ImplicitProviderKey
type ImplicitProvider c_adgb i_adgc e_adgd = (##>) ImplicitProviderKey (ImplicitProvider' c_adgb i_adgc e_adgd)
withImplicit :: forall (i_adgg :: Type) (c_adgh :: (Type -> Type) -> Constraint) (e_adgi :: (Type -> Type) -> Constraint) (a_adgk :: Type) f_adgj. SendSigBy ImplicitProviderKey (ImplicitProvider' c_adgh i_adgg e_adgi) f_adgj => i_adgg -> (forall (g_adgl :: Type -> Type). (c_adgh g_adgl, e_adgi g_adgl) => (forall (x_adgm :: Type). f_adgj x_adgm -> g_adgl x_adgm) -> g_adgl a_adgk) -> f_adgj a_adgk
withImplicit'' :: forall key_adio (i_adgg :: Type) (c_adgh :: (Type -> Type) -> Constraint) (e_adgi :: (Type -> Type) -> Constraint) (a_adgk :: Type) f_adgj. SendSigBy key_adio (ImplicitProvider' c_adgh i_adgg e_adgi) f_adgj => i_adgg -> (forall (g_adgl :: Type -> Type). (c_adgh g_adgl, e_adgi g_adgl) => (forall (x_adgm :: Type). f_adgj x_adgm -> g_adgl x_adgm) -> g_adgl a_adgk) -> f_adgj a_adgk
withImplicit' :: forall tag_adil (i_adgg :: Type) (c_adgh :: (Type -> Type) -> Constraint) (e_adgi :: (Type -> Type) -> Constraint) (a_adgk :: Type) f_adgj. SendSig (TagH (ImplicitProvider' c_adgh i_adgg e_adgi) tag_adil) f_adgj => i_adgg -> (forall (g_adgl :: Type -> Type). (c_adgh g_adgl, e_adgi g_adgl) => (forall (x_adgm :: Type). f_adgj x_adgm -> g_adgl x_adgm) -> g_adgl a_adgk) -> f_adgj a_adgk
withImplicit'_ :: forall (i_adgg :: Type) (c_adgh :: (Type -> Type) -> Constraint) (e_adgi :: (Type -> Type) -> Constraint) (a_adgk :: Type) f_adgj. SendSig (ImplicitProvider' c_adgh i_adgg e_adgi) f_adgj => i_adgg -> (forall (g_adgl :: Type -> Type). (c_adgh g_adgl, e_adgi g_adgl) => (forall (x_adgm :: Type). f_adgj x_adgm -> g_adgl x_adgm) -> g_adgl a_adgk) -> f_adgj a_adgk
type MonadImplicitProvider i e = ImplicitProvider Monad i e
type ApplicativeImplicitProvider i e = ImplicitProvider Applicative i e
(.!) :: forall c e i f a. SendSigBy ImplicitProviderKey (ImplicitProvider' c i e) f => i -> (forall g. (c g, e g) => g a) -> f a
(..!) :: forall c e i f a. SendSigBy ImplicitProviderKey (ImplicitProvider' c i e) f => i -> (forall g. (c g, e g) => (f ~> g) -> g a) -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Provider.Implicit.ImplicitProvider' c i e)
-- | This module provides the Provider effect, comes from
-- Effectful.Provider in the effectful package.
module Data.Effect.Provider
data Provider' c i ctx e (f :: Type -> Type) (a :: Type)
[Provide] :: i -> (forall g. (c g, e g) => (forall x. f x -> g x) -> g a) -> Provider' c i ctx e f (ctx a)
data ProviderKey
type Provider c_adB0 i_adB1 ctx_adB2 e_adB3 = (##>) ProviderKey (Provider' c_adB0 i_adB1 ctx_adB2 e_adB3)
provide :: forall (i_adB6 :: Type) (c_adB7 :: (Type -> Type) -> Constraint) (e_adB8 :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adBb :: Type -> Type) f_adB9. SendSigBy ProviderKey (Provider' c_adB7 i_adB6 ctx_adBb e_adB8) f_adB9 => i_adB6 -> (forall (g_adBc :: Type -> Type). (c_adB7 g_adBc, e_adB8 g_adBc) => (forall (x_adBd :: Type). f_adB9 x_adBd -> g_adBc x_adBd) -> g_adBc a_X0) -> f_adB9 (ctx_adBb a_X0)
provide'' :: forall key_adDo (i_adB6 :: Type) (c_adB7 :: (Type -> Type) -> Constraint) (e_adB8 :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adBb :: Type -> Type) f_adB9. SendSigBy key_adDo (Provider' c_adB7 i_adB6 ctx_adBb e_adB8) f_adB9 => i_adB6 -> (forall (g_adBc :: Type -> Type). (c_adB7 g_adBc, e_adB8 g_adBc) => (forall (x_adBd :: Type). f_adB9 x_adBd -> g_adBc x_adBd) -> g_adBc a_X0) -> f_adB9 (ctx_adBb a_X0)
provide' :: forall tag_adDl (i_adB6 :: Type) (c_adB7 :: (Type -> Type) -> Constraint) (e_adB8 :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adBb :: Type -> Type) f_adB9. SendSig (TagH (Provider' c_adB7 i_adB6 ctx_adBb e_adB8) tag_adDl) f_adB9 => i_adB6 -> (forall (g_adBc :: Type -> Type). (c_adB7 g_adBc, e_adB8 g_adBc) => (forall (x_adBd :: Type). f_adB9 x_adBd -> g_adBc x_adBd) -> g_adBc a_X0) -> f_adB9 (ctx_adBb a_X0)
provide'_ :: forall (i_adB6 :: Type) (c_adB7 :: (Type -> Type) -> Constraint) (e_adB8 :: (Type -> Type) -> Constraint) (a_X0 :: Type) (ctx_adBb :: Type -> Type) f_adB9. SendSig (Provider' c_adB7 i_adB6 ctx_adBb e_adB8) f_adB9 => i_adB6 -> (forall (g_adBc :: Type -> Type). (c_adB7 g_adBc, e_adB8 g_adBc) => (forall (x_adBd :: Type). f_adB9 x_adBd -> g_adBc x_adBd) -> g_adBc a_X0) -> f_adB9 (ctx_adBb a_X0)
type MonadProvider' = Provider' Monad
type ApplicativeProvider' = Provider' Applicative
type MonadProvider i ctx e = Provider Monad i ctx e
type ApplicativeProvider i ctx e = Provider Applicative i ctx e
mprovide :: forall e i ctx f a. SendSigBy ProviderKey (MonadProvider' i ctx e) f => i -> (forall g. (Monad g, e g) => (f ~> g) -> g a) -> f (ctx a)
aprovide :: forall e i ctx f a. SendSigBy ProviderKey (ApplicativeProvider' i ctx e) f => i -> (forall h. (Applicative h, e h) => (f ~> h) -> h a) -> f (ctx a)
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Provider.Provider' c i ctx e)
-- | This module provides the Output effect, comes from
-- Polysemy.Output in the polysemy package.
module Data.Effect.Output
data Output o a
[Output] :: o -> Output o ()
type LOutput o_adWV = LiftIns (Output o_adWV)
pattern LOutput :: () => (a_adXC ~ (), ()) => o_adWX -> LiftIns (Output o_adWX) f_adXB a_adXC
output'' :: forall key_adXx (o_adWX :: Type) f_adXy. SendInsBy key_adXx (Output o_adWX) f_adXy => o_adWX -> f_adXy ()
output' :: forall tag_adXu (o_adWX :: Type) f_adXv. SendIns (Tag (Output o_adWX) tag_adXu) f_adXv => o_adWX -> f_adXv ()
output :: forall (o_adWX :: Type) f_adXs. SendIns (Output o_adWX) f_adXs => o_adWX -> f_adXs ()
module Data.Effect.NonDet
data Empty (a :: Type)
[Empty] :: Empty a
type LEmpty = LiftIns Empty
pattern LEmpty :: () => (a_ae7N ~ a_ae7f, ()) => LiftIns Empty f_ae7M a_ae7N
empty'' :: forall key_ae7K (a_ae7f :: Type) f_ae7L. SendInsBy key_ae7K Empty f_ae7L => f_ae7L a_ae7f
empty' :: forall tag_ae7I (a_ae7f :: Type) f_ae7J. SendIns (Tag Empty tag_ae7I) f_ae7J => f_ae7J a_ae7f
empty :: forall (a_ae7f :: Type) f_ae7H. SendIns Empty f_ae7H => f_ae7H a_ae7f
data Choose (a :: Type)
[Choose] :: Choose Bool
type LChoose = LiftIns Choose
pattern LChoose :: () => (a_aebi ~ Bool, ()) => LiftIns Choose f_aebh a_aebi
choose'' :: forall key_aebf f_aebg. SendInsBy key_aebf Choose f_aebg => f_aebg Bool
choose' :: forall tag_aebd f_aebe. SendIns (Tag Choose tag_aebd) f_aebe => f_aebe Bool
choose :: forall f_aebc. SendIns Choose f_aebc => f_aebc Bool
data ChooseH f (a :: Type)
[ChooseH] :: f a -> f a -> ChooseH f a
chooseH'' :: forall key_aeeO (a_aebt :: Type) f_aebs. SendSigBy key_aeeO ChooseH f_aebs => f_aebs a_aebt -> f_aebs a_aebt -> f_aebs a_aebt
chooseH' :: forall tag_aeeL (a_aebt :: Type) f_aebs. SendSig (TagH ChooseH tag_aeeL) f_aebs => f_aebs a_aebt -> f_aebs a_aebt -> f_aebs a_aebt
chooseH :: forall (a_aebt :: Type) f_aebs. SendSig ChooseH f_aebs => f_aebs a_aebt -> f_aebs a_aebt -> f_aebs a_aebt
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor Data.Effect.NonDet.ChooseH
-- | This module provides the Input effect, comes from
-- Polysemy.Input in the polysemy package.
module Data.Effect.Input
data Input i (a :: Type)
[Input] :: Input i i
type LInput i_aetQ = LiftIns (Input i_aetQ)
pattern LInput :: () => (a_aeur ~ i_aetS, ()) => LiftIns (Input i_aetS) f_aeuq a_aeur
input'' :: forall key_aeuo (i_aetS :: Type) f_aeup. SendInsBy key_aeuo (Input i_aetS) f_aeup => f_aeup i_aetS
input' :: forall tag_aeum (i_aetS :: Type) f_aeun. SendIns (Tag (Input i_aetS) tag_aeum) f_aeun => f_aeun i_aetS
input :: forall (i_aetS :: Type) f_aeul. SendIns (Input i_aetS) f_aeul => f_aeul i_aetS
inputs :: (Input i <: f, Functor f) => (i -> a) -> f a
module Data.Effect.Fresh
data Fresh i (a :: Type)
[Fresh] :: Fresh i i
type LFresh i_aeDb = LiftIns (Fresh i_aeDb)
pattern LFresh :: () => (a_aeDM ~ i_aeDd, ()) => LiftIns (Fresh i_aeDd) f_aeDL a_aeDM
fresh'' :: forall key_aeDJ (i_aeDd :: Type) f_aeDK. SendInsBy key_aeDJ (Fresh i_aeDd) f_aeDK => f_aeDK i_aeDd
fresh' :: forall tag_aeDH (i_aeDd :: Type) f_aeDI. SendIns (Tag (Fresh i_aeDd) tag_aeDH) f_aeDI => f_aeDI i_aeDd
fresh :: forall (i_aeDd :: Type) f_aeDG. SendIns (Fresh i_aeDd) f_aeDG => f_aeDG i_aeDd
module Data.Effect.Fix
data Fix f a
[Mfix] :: (a -> f a) -> Fix f a
mfix'' :: forall key_aeLK (a_aeKZ :: Type) f_aeL0. SendSigBy key_aeLK Fix f_aeL0 => (a_aeKZ -> f_aeL0 a_aeKZ) -> f_aeL0 a_aeKZ
mfix' :: forall tag_aeLI (a_aeKZ :: Type) f_aeL0. SendSig (TagH Fix tag_aeLI) f_aeL0 => (a_aeKZ -> f_aeL0 a_aeKZ) -> f_aeL0 a_aeKZ
mfix :: forall (a_aeKZ :: Type) f_aeL0. SendSig Fix f_aeL0 => (a_aeKZ -> f_aeL0 a_aeKZ) -> f_aeL0 a_aeKZ
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor Data.Effect.Fix.Fix
module Data.Effect.Fail
data Fail (a :: Type)
[Fail] :: String -> Fail a
type LFail = LiftIns Fail
pattern LFail :: () => (a_aeUS ~ a_aeUe, ()) => String -> LiftIns Fail f_aeUR a_aeUS
fail'' :: forall key_aeUN (a_aeUe :: Type) f_aeUO. SendInsBy key_aeUN Fail f_aeUO => String -> f_aeUO a_aeUe
fail' :: forall tag_aeUK (a_aeUe :: Type) f_aeUL. SendIns (Tag Fail tag_aeUK) f_aeUL => String -> f_aeUL a_aeUe
fail :: forall (a_aeUe :: Type) f_aeUI. SendIns Fail f_aeUI => String -> f_aeUI a_aeUe
module Data.Effect.Except
data Throw e (a :: Type)
[Throw] :: e -> Throw e a
data Catch e f (a :: Type)
[Catch] :: f a -> (e -> f a) -> Catch e f a
type LThrow e_af3u = LiftIns (Throw e_af3u)
catch'' :: forall key_af5a (a_af3s :: Type) (e_af3t :: Type) f_af3r. SendSigBy key_af5a (Catch e_af3t) f_af3r => f_af3r a_af3s -> (e_af3t -> f_af3r a_af3s) -> f_af3r a_af3s
catch' :: forall tag_af57 (a_af3s :: Type) (e_af3t :: Type) f_af3r. SendSig (TagH (Catch e_af3t) tag_af57) f_af3r => f_af3r a_af3s -> (e_af3t -> f_af3r a_af3s) -> f_af3r a_af3s
catch :: forall (a_af3s :: Type) (e_af3t :: Type) f_af3r. SendSig (Catch e_af3t) f_af3r => f_af3r a_af3s -> (e_af3t -> f_af3r a_af3s) -> f_af3r a_af3s
pattern LThrow :: () => (a_af51 ~ a_af3x, ()) => e_af3w -> LiftIns (Throw e_af3w) f_af50 a_af51
throw'' :: forall key_af4W (e_af3w :: Type) (a_af3x :: Type) f_af4X. SendInsBy key_af4W (Throw e_af3w) f_af4X => e_af3w -> f_af4X a_af3x
throw' :: forall tag_af4T (e_af3w :: Type) (a_af3x :: Type) f_af4U. SendIns (Tag (Throw e_af3w) tag_af4T) f_af4U => e_af3w -> f_af4U a_af3x
throw :: forall (e_af3w :: Type) (a_af3x :: Type) f_af4R. SendIns (Throw e_af3w) f_af4R => e_af3w -> f_af4R a_af3x
liftEither :: (Throw e <: f, Applicative f) => Either e a -> f a
joinEither :: (Throw e <: m, Monad m) => m (Either e a) -> m a
joinExcept :: Monad m => Either (m a) a -> m a
exc :: Monad m => m (Either (m a) a) -> m a
withExcept :: (Catch e <<: f, Throw e <: f, Applicative f) => f a -> (e -> f ()) -> f a
onExcept :: forall e f a. (Catch e <<: f, Throw e <: f, Applicative f) => f a -> f () -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Except.Catch e)
-- | This module provides the KVStore effect, comes from
-- Polysemy.KVStore in the polysemy-kvstore
-- package.
module Data.Effect.KVStore
data KVStore k v a
[LookupKV] :: k -> KVStore k v (Maybe v)
[UpdateKV] :: k -> Maybe v -> KVStore k v ()
type LKVStore k_afDZ v_afE0 = LiftIns (KVStore k_afDZ v_afE0)
pattern LUpdateKV :: () => (a_afFQ ~ (), ()) => k_afEq -> Maybe v_afEr -> LiftIns (KVStore k_afEq v_afEr) f_afFP a_afFQ
pattern LLookupKV :: () => (a_afFM ~ Maybe v_afE3, ()) => k_afE2 -> LiftIns (KVStore k_afE2 v_afE3) f_afFL a_afFM
updateKV'' :: forall key_afFG (k_afEq :: Type) (v_afEr :: Type) f_afFH. SendInsBy key_afFG (KVStore k_afEq v_afEr) f_afFH => k_afEq -> Maybe v_afEr -> f_afFH ()
updateKV' :: forall tag_afFC (k_afEq :: Type) (v_afEr :: Type) f_afFD. SendIns (Tag (KVStore k_afEq v_afEr) tag_afFC) f_afFD => k_afEq -> Maybe v_afEr -> f_afFD ()
updateKV :: forall (k_afEq :: Type) (v_afEr :: Type) f_afFz. SendIns (KVStore k_afEq v_afEr) f_afFz => k_afEq -> Maybe v_afEr -> f_afFz ()
lookupKV'' :: forall key_afFw (k_afE2 :: Type) (v_afE3 :: Type) f_afFx. SendInsBy key_afFw (KVStore k_afE2 v_afE3) f_afFx => k_afE2 -> f_afFx (Maybe v_afE3)
lookupKV' :: forall tag_afFt (k_afE2 :: Type) (v_afE3 :: Type) f_afFu. SendIns (Tag (KVStore k_afE2 v_afE3) tag_afFt) f_afFu => k_afE2 -> f_afFu (Maybe v_afE3)
lookupKV :: forall (k_afE2 :: Type) (v_afE3 :: Type) f_afFr. SendIns (KVStore k_afE2 v_afE3) f_afFr => k_afE2 -> f_afFr (Maybe v_afE3)
lookupOrThrowKV :: (KVStore k v <: m, Throw e <: m, Monad m) => (k -> e) -> k -> m v
existsKV :: forall v k f. (KVStore k v <: f, Functor f) => k -> f Bool
writeKV :: KVStore k v <: f => k -> v -> f ()
deleteKV :: forall v k f. KVStore k v <: f => k -> f ()
modifyKV :: (KVStore k v <: m, Monad m) => v -> (v -> v) -> k -> m ()
-- | This module provides the Coroutine effect, comes from
-- Control.Monad.Freer.Coroutine in the
-- freer-simple package (The continuation part (b ->
-- c) has been removed. If necessary, please manually compose the
-- Coyoneda) .
module Data.Effect.Coroutine
data Yield a b (c :: Type)
[Yield] :: a -> Yield a b b
type LYield a_age8 b_age9 = LiftIns (Yield a_age8 b_age9)
pattern LYield :: () => (a_ageZ ~ b_agec, ()) => a_ageb -> LiftIns (Yield a_ageb b_agec) f_ageY a_ageZ
yield'' :: forall key_ageU (a_ageb :: Type) (b_agec :: Type) f_ageV. SendInsBy key_ageU (Yield a_ageb b_agec) f_ageV => a_ageb -> f_ageV b_agec
yield' :: forall tag_ageR (a_ageb :: Type) (b_agec :: Type) f_ageS. SendIns (Tag (Yield a_ageb b_agec) tag_ageR) f_ageS => a_ageb -> f_ageS b_agec
yield :: forall (a_ageb :: Type) (b_agec :: Type) f_ageP. SendIns (Yield a_ageb b_agec) f_ageP => a_ageb -> f_ageP b_agec
yield_ :: Yield a () <: f => a -> f ()
data Status f a b r
Done :: r -> Status f a b r
Coroutine :: a -> (b -> f (Status f a b r)) -> Status f a b r
continueStatus :: Monad m => (x -> m (Status m a b r)) -> Status m a b x -> m (Status m a b r)
loopStatus :: Monad m => (a -> m b) -> Status m a b r -> m r
instance GHC.Base.Functor f => GHC.Base.Functor (Data.Effect.Coroutine.Status f a b)
module Data.Effect.Cont
data CallCC m a
[CallCC] :: (forall r. (a -> m r) -> m a) -> CallCC m a
callCC'' :: forall key_agNL (a_agMl :: Type) m_agMm. SendSigBy key_agNL CallCC m_agMm => (forall (r_agMn :: Type). (a_agMl -> m_agMm r_agMn) -> m_agMm a_agMl) -> m_agMm a_agMl
callCC' :: forall tag_agNJ (a_agMl :: Type) m_agMm. SendSig (TagH CallCC tag_agNJ) m_agMm => (forall (r_agMn :: Type). (a_agMl -> m_agMm r_agMn) -> m_agMm a_agMl) -> m_agMm a_agMl
callCC :: forall (a_agMl :: Type) m_agMm. SendSig CallCC m_agMm => (forall (r_agMn :: Type). (a_agMl -> m_agMm r_agMn) -> m_agMm a_agMl) -> m_agMm a_agMl
module Data.Effect.Concurrent.Timer
data Timer a
[Clock] :: Timer DiffTime
[Sleep] :: DiffTime -> Timer ()
type LTimer = LiftIns Timer
pattern LSleep :: () => (a_agWB ~ (), ()) => DiffTime -> LiftIns Timer f_agWA a_agWB
pattern LClock :: () => (a_agWy ~ DiffTime, ()) => LiftIns Timer f_agWx a_agWy
sleep'' :: forall key_agWu f_agWv. SendInsBy key_agWu Timer f_agWv => DiffTime -> f_agWv ()
sleep' :: forall tag_agWr f_agWs. SendIns (Tag Timer tag_agWr) f_agWs => DiffTime -> f_agWs ()
sleep :: forall f_agWp. SendIns Timer f_agWp => DiffTime -> f_agWp ()
clock'' :: forall key_agWn f_agWo. SendInsBy key_agWn Timer f_agWo => f_agWo DiffTime
clock' :: forall tag_agWl f_agWm. SendIns (Tag Timer tag_agWl) f_agWm => f_agWm DiffTime
clock :: forall f_agWk. SendIns Timer f_agWk => f_agWk DiffTime
withElapsedTime :: (Timer <: m, Monad m) => (m DiffTime -> m a) -> m a
measureTime :: (Timer <: m, Monad m) => m a -> m (DiffTime, a)
sleepUntil :: (Timer <: m, Monad m) => DiffTime -> m (Maybe DiffTime)
runCyclic :: (Timer <: m, Monad m) => m DiffTime -> m () -> m a
runPeriodic :: (Timer <: m, Monad m) => DiffTime -> m () -> m a
periodicTimer :: forall m a. (Timer <: m, Yield () () <: m, Monad m) => DiffTime -> m a
cyclicTimer :: forall m a. (Timer <: m, Yield () DiffTime <: m, Monad m) => m a
data CyclicTimer a
[Wait] :: DiffTime -> CyclicTimer ()
type LCyclicTimer = LiftIns CyclicTimer
pattern LWait :: () => (a_ahko ~ (), ()) => DiffTime -> LiftIns CyclicTimer f_ahkn a_ahko
wait'' :: forall key_ahkj f_ahkk. SendInsBy key_ahkj CyclicTimer f_ahkk => DiffTime -> f_ahkk ()
wait' :: forall tag_ahkg f_ahkh. SendIns (Tag CyclicTimer tag_ahkg) f_ahkh => DiffTime -> f_ahkh ()
wait :: forall f_ahke. SendIns CyclicTimer f_ahke => DiffTime -> f_ahke ()
module Data.Effect.Concurrent.Thread
data Thread' tid f (a :: Type)
[ForkThread] :: f () -> Thread' tid f tid
data ThreadKey
type Thread tid_ai5f = (##>) ThreadKey (Thread' tid_ai5f)
forkThread :: forall (tid_ai5j :: Type) f_ai5i. SendSigBy ThreadKey (Thread' tid_ai5j) f_ai5i => f_ai5i () -> f_ai5i tid_ai5j
forkThread'' :: forall key_ai62 (tid_ai5j :: Type) f_ai5i. SendSigBy key_ai62 (Thread' tid_ai5j) f_ai5i => f_ai5i () -> f_ai5i tid_ai5j
forkThread' :: forall tag_ai60 (tid_ai5j :: Type) f_ai5i. SendSig (TagH (Thread' tid_ai5j) tag_ai60) f_ai5i => f_ai5i () -> f_ai5i tid_ai5j
forkThread'_ :: forall (tid_ai5j :: Type) f_ai5i. SendSig (Thread' tid_ai5j) f_ai5i => f_ai5i () -> f_ai5i tid_ai5j
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Concurrent.Thread.Thread' tid)
module Data.Effect.Chronicle
data ChronicleF c a
[Dictate] :: c -> ChronicleF c ()
[Confess] :: c -> ChronicleF c a
data ChronicleH c f a
[Memento] :: f a -> ChronicleH c f (Either c a)
[Absolve] :: a -> f a -> ChronicleH c f a
[Condemn] :: f a -> ChronicleH c f a
type LChronicleF c_aik1 = LiftIns (ChronicleF c_aik1)
condemn'' :: forall key_ain4 (a_aijZ :: Type) (c_aik0 :: Type) f_aijY. SendSigBy key_ain4 (ChronicleH c_aik0) f_aijY => f_aijY a_aijZ -> f_aijY a_aijZ
condemn' :: forall tag_ain2 (a_aijZ :: Type) (c_aik0 :: Type) f_aijY. SendSig (TagH (ChronicleH c_aik0) tag_ain2) f_aijY => f_aijY a_aijZ -> f_aijY a_aijZ
condemn :: forall (a_aijZ :: Type) (c_aik0 :: Type) f_aijY. SendSig (ChronicleH c_aik0) f_aijY => f_aijY a_aijZ -> f_aijY a_aijZ
absolve'' :: forall key_aimY (a_aijV :: Type) (c_aijX :: Type) f_aijW. SendSigBy key_aimY (ChronicleH c_aijX) f_aijW => a_aijV -> f_aijW a_aijV -> f_aijW a_aijV
absolve' :: forall tag_aimV (a_aijV :: Type) (c_aijX :: Type) f_aijW. SendSig (TagH (ChronicleH c_aijX) tag_aimV) f_aijW => a_aijV -> f_aijW a_aijV -> f_aijW a_aijV
absolve :: forall (a_aijV :: Type) (c_aijX :: Type) f_aijW. SendSig (ChronicleH c_aijX) f_aijW => a_aijV -> f_aijW a_aijV -> f_aijW a_aijV
memento'' :: forall key_aimR (a_X0 :: Type) (c_aijU :: Type) f_aijS. SendSigBy key_aimR (ChronicleH c_aijU) f_aijS => f_aijS a_X0 -> f_aijS (Either c_aijU a_X0)
memento' :: forall tag_aimP (a_X0 :: Type) (c_aijU :: Type) f_aijS. SendSig (TagH (ChronicleH c_aijU) tag_aimP) f_aijS => f_aijS a_X0 -> f_aijS (Either c_aijU a_X0)
memento :: forall (a_X0 :: Type) (c_aijU :: Type) f_aijS. SendSig (ChronicleH c_aijU) f_aijS => f_aijS a_X0 -> f_aijS (Either c_aijU a_X0)
pattern LConfess :: () => (a_aimF ~ a_aik5, ()) => c_aik4 -> LiftIns (ChronicleF c_aik4) f_aimE a_aimF
pattern LDictate :: () => (a_aimC ~ (), ()) => c_aik3 -> LiftIns (ChronicleF c_aik3) f_aimB a_aimC
confess'' :: forall key_aimx (c_aik4 :: Type) (a_aik5 :: Type) f_aimy. SendInsBy key_aimx (ChronicleF c_aik4) f_aimy => c_aik4 -> f_aimy a_aik5
confess' :: forall tag_aimu (c_aik4 :: Type) (a_aik5 :: Type) f_aimv. SendIns (Tag (ChronicleF c_aik4) tag_aimu) f_aimv => c_aik4 -> f_aimv a_aik5
confess :: forall (c_aik4 :: Type) (a_aik5 :: Type) f_aims. SendIns (ChronicleF c_aik4) f_aims => c_aik4 -> f_aims a_aik5
dictate'' :: forall key_aimp (c_aik3 :: Type) f_aimq. SendInsBy key_aimp (ChronicleF c_aik3) f_aimq => c_aik3 -> f_aimq ()
dictate' :: forall tag_aimm (c_aik3 :: Type) f_aimn. SendIns (Tag (ChronicleF c_aik3) tag_aimm) f_aimn => c_aik3 -> f_aimn ()
dictate :: forall (c_aik3 :: Type) f_aimk. SendIns (ChronicleF c_aik3) f_aimk => c_aik3 -> f_aimk ()
chronicle :: (ChronicleF c <: f, Applicative f) => These c a -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Chronicle.ChronicleH c)
module Data.Effect.Accum
data Accum w a
[Add] :: w -> Accum f ()
[Look] :: Accum w w
type LAccum w_aj5E = LiftIns (Accum w_aj5E)
pattern LLook :: () => (a_aj6L ~ w_aj5I, ()) => LiftIns (Accum w_aj5I) f_aj6K a_aj6L
pattern LAdd :: () => (a_aj6J ~ (), ()) => w_X0 -> LiftIns (Accum f_aj5H) f_aj6I a_aj6J
look'' :: forall key_aj6F (w_aj5I :: Type) f_aj6G. SendInsBy key_aj6F (Accum w_aj5I) f_aj6G => f_aj6G w_aj5I
look' :: forall tag_aj6D (w_aj5I :: Type) f_aj6E. SendIns (Tag (Accum w_aj5I) tag_aj6D) f_aj6E => f_aj6E w_aj5I
look :: forall (w_aj5I :: Type) f_aj6C. SendIns (Accum w_aj5I) f_aj6C => f_aj6C w_aj5I
add'' :: forall key_aj6z (w_X0 :: Type) (f_aj5H :: Type) f_aj6A. SendInsBy key_aj6z (Accum f_aj5H) f_aj6A => w_X0 -> f_aj6A ()
add' :: forall tag_aj6w (w_X0 :: Type) (f_aj5H :: Type) f_aj6x. SendIns (Tag (Accum f_aj5H) tag_aj6w) f_aj6x => w_X0 -> f_aj6x ()
add :: forall (w_X0 :: Type) (f_aj5H :: Type) f_aj6u. SendIns (Accum f_aj5H) f_aj6u => w_X0 -> f_aj6u ()