-- 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.2.0.0
module Data.Effect.Writer
data Tell w a
[Tell] :: forall w. w -> Tell w ()
data WriterH w (f :: Type -> Type) a
[Listen] :: forall (f :: Type -> Type) a1 w. f a1 -> WriterH w f (w, a1)
[Censor] :: forall w (f :: Type -> Type) a. (w -> w) -> f a -> WriterH w f a
type LTell w = LiftFOE Tell w
pattern LTell :: forall a w f. () => (a ~ (), ()) => w -> LiftFOE (Tell w) f a
tell :: SendFOE (Tell w) f => w -> f ()
tell' :: forall {k} (tag :: k) w f. SendFOE (Tag (Tell w) tag) f => w -> f ()
tell'' :: forall {k} (key :: k) w f. SendFOEBy key (Tell w) f => w -> f ()
listen :: forall a w f. SendHOE (WriterH w) f => f a -> f (w, a)
listen' :: forall {k} (tag :: k) a w f. SendHOE (TagH (WriterH w) tag) f => f a -> f (w, a)
listen'' :: forall {k} (key :: k) a w f. SendHOEBy key (WriterH w) f => f a -> f (w, a)
censor :: forall w a f. SendHOE (WriterH w) f => (w -> w) -> f a -> f a
censor' :: forall {k} (tag :: k) w a f. SendHOE (TagH (WriterH w) tag) f => (w -> w) -> f a -> f a
censor'' :: forall {k} (key :: k) w a f. SendHOEBy key (WriterH w) f => (w -> w) -> f a -> f a
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 :: Type -> Type) (f :: Type -> Type) a
[WithRunInBase] :: forall (f :: Type -> Type) (b :: Type -> Type) a. ((forall x. () => f x -> b x) -> b a) -> UnliftBase b f a
withRunInBase :: forall b a f. SendHOE (UnliftBase b) f => ((forall x. () => f x -> b x) -> b a) -> f a
withRunInBase' :: forall {k} (tag :: k) b a f. SendHOE (TagH (UnliftBase b) tag) f => ((forall x. () => f x -> b x) -> b a) -> f a
withRunInBase'' :: forall {k} (key :: k) b a f. SendHOEBy key (UnliftBase b) f => ((forall x. () => f x -> b x) -> b a) -> f a
type UnliftIO = UnliftBase IO
pattern WithRunInIO :: ((f ~> IO) -> IO a) -> UnliftIO f a
withRunInIO :: UnliftIO <<: f => ((f ~> IO) -> IO a) -> f a
withRunInIO' :: forall {k} (tag :: k) f a. (UnliftIO ## tag) <<: f => ((f ~> IO) -> IO a) -> f a
withRunInIO'' :: forall {k} (key :: k) f a. SendHOEBy 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] :: forall s. State s s
[Put] :: forall s. s -> State s ()
type LState s = LiftFOE State s
pattern LPut :: forall a s f. () => (a ~ (), ()) => s -> LiftFOE (State s) f a
pattern LGet :: forall a s f. () => (a ~ s, ()) => LiftFOE (State s) f a
get :: SendFOE (State s) f => f s
get' :: forall {k} (tag :: k) s f. SendFOE (Tag (State s) tag) f => f s
get'' :: forall {k} (key :: k) s f. SendFOEBy key (State s) f => f s
put :: SendFOE (State s) f => s -> f ()
put' :: forall {k} (tag :: k) s f. SendFOE (Tag (State s) tag) f => s -> f ()
put'' :: forall {k} (key :: k) s f. SendFOEBy key (State s) f => s -> f ()
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 (b :: Type -> Type) (m :: Type -> Type) a
[Shift] :: forall r (b :: Type -> Type) (m :: Type -> Type) a. ((a -> b r) -> (forall x. () => m x -> b x) -> b r) -> Shift' r b m a
type Shift r (b :: Type -> Type) = ShiftKey ##> Shift' r b
data ShiftKey
shift'_ :: forall r b a m. SendHOE (Shift' r b) m => ((a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
shift' :: forall {k} (tag :: k) r b a m. SendHOE (TagH (Shift' r b) tag) m => ((a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
shift'' :: forall {k} (key :: k) r b a m. SendHOEBy key (Shift' r b) m => ((a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
shift :: forall r b a m. SendHOEBy ShiftKey (Shift' r b) m => ((a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
callCC :: (SendHOEBy ShiftKey (Shift' r b) m, Monad m, Monad b) => ((a -> b r) -> m a) -> m a
exit :: forall r (b :: Type -> Type) m a. (SendHOEBy ShiftKey (Shift' r b) m, Applicative b) => r -> m a
getCC :: (SendHOEBy ShiftKey (Shift' r b) m, Monad m, Monad b) => m (b r)
data Shift_' (b :: Type -> Type) (m :: Type -> Type) a
[Shift_'] :: forall a (b :: Type -> Type) (m :: Type -> Type). (forall r. () => (a -> b r) -> (forall x. () => m x -> b x) -> b r) -> Shift_' b m a
type Shift_ (b :: Type -> Type) = Shift_Key ##> Shift_' b
data Shift_Key
shift_''_ :: forall a b m. SendHOE (Shift_' b) m => (forall r. () => (a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
shift_'' :: forall {k} (tag :: k) a b m. SendHOE (TagH (Shift_' b) tag) m => (forall r. () => (a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
shift_''' :: forall {k} (key :: k) a b m. SendHOEBy key (Shift_' b) m => (forall r. () => (a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
shift_' :: forall a b m. SendHOEBy Shift_Key (Shift_' b) m => (forall r. () => (a -> b r) -> (forall x. () => m x -> b x) -> b r) -> m a
getCC_ :: (SendHOEBy Shift_Key (Shift_' b) m, Functor b) => m (b ())
data Reset (m :: Type -> Type) a
[Reset] :: forall (m :: Type -> Type) a. m a -> Reset m a
reset :: forall a m. SendHOE Reset m => m a -> m a
reset' :: forall {k} (tag :: k) a m. SendHOE (TagH Reset tag) m => m a -> m a
reset'' :: forall {k} (key :: k) a m. SendHOEBy key Reset m => m a -> m a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor Data.Effect.ShiftReset.Reset
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.ShiftReset.Shift' r b)
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.ShiftReset.Shift_' b)
-- | An effect capable of providing bracket semantics.
module Data.Effect.Resource
-- | An effect capable of providing bracket semantics.
data Resource (f :: Type -> Type) a
-- | Allocate a resource, use it, and clean it up afterwards.
[Bracket] :: forall (f :: Type -> Type) a1 a. f a1 -> (a1 -> f ()) -> (a1 -> f a) -> Resource f a
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
[BracketOnExcept] :: forall (f :: Type -> Type) a1 a. f a1 -> (a1 -> f ()) -> (a1 -> f a) -> Resource f a
-- | Allocate a resource, use it, and clean it up afterwards.
bracket :: forall a b f. SendHOE Resource f => f a -> (a -> f ()) -> (a -> f b) -> f b
-- | Allocate a resource, use it, and clean it up afterwards.
bracket' :: forall {k} (tag :: k) a b f. SendHOE (TagH Resource tag) f => f a -> (a -> f ()) -> (a -> f b) -> f b
-- | Allocate a resource, use it, and clean it up afterwards.
bracket'' :: forall {k} (key :: k) a b f. SendHOEBy key Resource f => f a -> (a -> f ()) -> (a -> f b) -> f b
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
bracketOnExcept :: forall a b f. SendHOE Resource f => f a -> (a -> f ()) -> (a -> f b) -> f b
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
bracketOnExcept' :: forall {k} (tag :: k) a b f. SendHOE (TagH Resource tag) f => f a -> (a -> f ()) -> (a -> f b) -> f b
-- | Allocate a resource, use it, and clean it up afterwards if an error
-- occurred.
bracketOnExcept'' :: forall {k} (key :: k) a b f. SendHOEBy key Resource f => f a -> (a -> f ()) -> (a -> f b) -> f b
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
[Ask] :: forall r. Ask r r
data Local r (f :: Type -> Type) a
[Local] :: forall r (f :: Type -> Type) a. (r -> r) -> f a -> Local r f a
type LAsk r = LiftFOE Ask r
pattern LAsk :: forall a r f. () => (a ~ r, ()) => LiftFOE (Ask r) f a
ask :: SendFOE (Ask r) f => f r
ask' :: forall {k} (tag :: k) r f. SendFOE (Tag (Ask r) tag) f => f r
ask'' :: forall {k} (key :: k) r f. SendFOEBy key (Ask r) f => f r
local :: forall r a f. SendHOE (Local r) f => (r -> r) -> f a -> f a
local' :: forall {k} (tag :: k) r a f. SendHOE (TagH (Local r) tag) f => (r -> r) -> f a -> f a
local'' :: forall {k} (key :: k) r a f. SendHOEBy key (Local r) f => (r -> r) -> f a -> f a
asks :: (Ask r <: f, Functor f) => (r -> a) -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Reader.Local r)
-- | This module provides the Provider effect, like
-- Effectful.Provider in the effectful package.
module Data.Effect.Provider
data Provider' (ctx :: Type -> Type) i (b :: Type -> Type) (f :: Type -> Type) a
[Provide] :: forall i (f :: Type -> Type) (b :: Type -> Type) a1 (ctx :: Type -> Type). i -> ((forall x. () => f x -> b x) -> b a1) -> Provider' ctx i b f (ctx a1)
provide :: forall i b a ctx f. SendHOE (Provider' ctx i b) f => i -> ((forall x. () => f x -> b x) -> b a) -> f (ctx a)
provide' :: forall {k} (tag :: k) i b a ctx f. SendHOE (TagH (Provider' ctx i b) tag) f => i -> ((forall x. () => f x -> b x) -> b a) -> f (ctx a)
provide'' :: forall {k} (key :: k) i b a ctx f. SendHOEBy key (Provider' ctx i b) f => i -> ((forall x. () => f x -> b x) -> b a) -> f (ctx a)
data ProviderKey (ctx :: k) (i :: k1)
type Provider (ctx :: Type -> Type) i (b :: Type -> Type) = ProviderKey ctx i ##> Provider' ctx i b
type Provider_ i (b :: Type -> Type) = ProviderKey Identity i ##> Provider' Identity i b
(.!) :: forall i f a b. (SendHOEBy (ProviderKey Identity i) (Provider' Identity i b) f, Functor f) => i -> ((f ~> b) -> b a) -> f a
infix 2 .!
(..!) :: forall ctx i f a b. SendHOEBy (ProviderKey ctx i) (Provider' ctx i b) f => i -> ((f ~> b) -> b a) -> f (ctx a)
infix 2 ..!
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Provider.Provider' ctx i b)
-- | This module provides the Output effect, comes from
-- Polysemy.Output in the polysemy package.
module Data.Effect.Output
data Output o a
[Output] :: forall o. o -> Output o ()
type LOutput o = LiftFOE Output o
pattern LOutput :: forall a o f. () => (a ~ (), ()) => o -> LiftFOE (Output o) f a
output :: SendFOE (Output o) f => o -> f ()
output' :: forall {k} (tag :: k) o f. SendFOE (Tag (Output o) tag) f => o -> f ()
output'' :: forall {k} (key :: k) o f. SendFOEBy key (Output o) f => o -> f ()
module Data.Effect.NonDet
data Empty a
[Empty] :: forall a. Empty a
type LEmpty = LiftFOE Empty
pattern LEmpty :: forall a f a1. () => (a ~ a1, ()) => LiftFOE Empty f a
empty :: forall a f. SendFOE Empty f => f a
empty' :: forall {k} (tag :: k) a f. SendFOE (Tag Empty tag) f => f a
empty'' :: forall {k} (key :: k) a f. SendFOEBy key Empty f => f a
data Choose a
[Choose] :: Choose Bool
type LChoose = LiftFOE Choose
pattern LChoose :: forall a f. () => (a ~ Bool, ()) => LiftFOE Choose f a
choose :: SendFOE Choose f => f Bool
choose' :: forall {k} (tag :: k) f. SendFOE (Tag Choose tag) f => f Bool
choose'' :: forall {k} (key :: k) f. SendFOEBy key Choose f => f Bool
data ChooseH (f :: Type -> Type) a
[ChooseH] :: forall (f :: Type -> Type) a. f a -> f a -> ChooseH f a
chooseH :: forall a f. SendHOE ChooseH f => f a -> f a -> f a
chooseH' :: forall {k} (tag :: k) a f. SendHOE (TagH ChooseH tag) f => f a -> f a -> f a
chooseH'' :: forall {k} (key :: k) a f. SendHOEBy key ChooseH f => f a -> f a -> f a
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
[Input] :: forall i. Input i i
type LInput i = LiftFOE Input i
pattern LInput :: forall a i f. () => (a ~ i, ()) => LiftFOE (Input i) f a
input :: SendFOE (Input i) f => f i
input' :: forall {k} (tag :: k) i f. SendFOE (Tag (Input i) tag) f => f i
input'' :: forall {k} (key :: k) i f. SendFOEBy key (Input i) f => f i
inputs :: (Input i <: f, Functor f) => (i -> a) -> f a
module Data.Effect.Fresh
data Fresh i a
[Fresh] :: forall i. Fresh i i
type LFresh i = LiftFOE Fresh i
pattern LFresh :: forall a i f. () => (a ~ i, ()) => LiftFOE (Fresh i) f a
fresh :: SendFOE (Fresh i) f => f i
fresh' :: forall {k} (tag :: k) i f. SendFOE (Tag (Fresh i) tag) f => f i
fresh'' :: forall {k} (key :: k) i f. SendFOEBy key (Fresh i) f => f i
module Data.Effect.Fix
data Fix (f :: Type -> Type) a
[Mfix] :: forall a (f :: Type -> Type). (a -> f a) -> Fix f a
mfix :: forall a f. SendHOE Fix f => (a -> f a) -> f a
mfix' :: forall {k} (tag :: k) a f. SendHOE (TagH Fix tag) f => (a -> f a) -> f a
mfix'' :: forall {k} (key :: k) a f. SendHOEBy key Fix f => (a -> f a) -> f a
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor Data.Effect.Fix.Fix
module Data.Effect.Fail
data Fail a
[Fail] :: forall a. String -> Fail a
type LFail = LiftFOE Fail
pattern LFail :: forall a f a1. () => (a ~ a1, ()) => String -> LiftFOE Fail f a
fail :: forall a f. SendFOE Fail f => String -> f a
fail' :: forall {k} (tag :: k) a f. SendFOE (Tag Fail tag) f => String -> f a
fail'' :: forall {k} (key :: k) a f. SendFOEBy key Fail f => String -> f a
module Data.Effect.Except
data Throw e a
[Throw] :: forall e a. e -> Throw e a
data Catch e (f :: Type -> Type) a
[Catch] :: forall (f :: Type -> Type) a e. f a -> (e -> f a) -> Catch e f a
type LThrow e = LiftFOE Throw e
pattern LThrow :: forall a e f a1. () => (a ~ a1, ()) => e -> LiftFOE (Throw e) f a
throw :: forall e a f. SendFOE (Throw e) f => e -> f a
throw' :: forall {k} (tag :: k) e a f. SendFOE (Tag (Throw e) tag) f => e -> f a
throw'' :: forall {k} (key :: k) e a f. SendFOEBy key (Throw e) f => e -> f a
catch :: forall a e f. SendHOE (Catch e) f => f a -> (e -> f a) -> f a
catch' :: forall {k} (tag :: k) a e f. SendHOE (TagH (Catch e) tag) f => f a -> (e -> f a) -> f a
catch'' :: forall {k} (key :: k) a e f. SendHOEBy key (Catch e) f => f a -> (e -> f a) -> f a
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 :: (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] :: forall k v. k -> KVStore k v (Maybe v)
[UpdateKV] :: forall k v. k -> Maybe v -> KVStore k v ()
type LKVStore k v = LiftFOE KVStore k v
pattern LUpdateKV :: forall a k v f. () => (a ~ (), ()) => k -> Maybe v -> LiftFOE (KVStore k v) f a
pattern LLookupKV :: forall a v k f. () => (a ~ Maybe v, ()) => k -> LiftFOE (KVStore k v) f a
lookupKV :: SendFOE (KVStore k v) f => k -> f (Maybe v)
lookupKV' :: forall {k1} (tag :: k1) k2 v f. SendFOE (Tag (KVStore k2 v) tag) f => k2 -> f (Maybe v)
lookupKV'' :: forall {k1} (key :: k1) k2 v f. SendFOEBy key (KVStore k2 v) f => k2 -> f (Maybe v)
updateKV :: SendFOE (KVStore k v) f => k -> Maybe v -> f ()
updateKV' :: forall {k1} (tag :: k1) k2 v f. SendFOE (Tag (KVStore k2 v) tag) f => k2 -> Maybe v -> f ()
updateKV'' :: forall {k1} (key :: k1) k2 v f. SendFOEBy key (KVStore k2 v) f => k2 -> Maybe v -> f ()
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
[Yield] :: forall a b. a -> Yield a b b
type LYield a b = LiftFOE Yield a b
pattern LYield :: forall a1 b a2 f. () => (a1 ~ b, ()) => a2 -> LiftFOE (Yield a2 b) f a1
yield :: SendFOE (Yield a b) f => a -> f b
yield' :: forall {k} (tag :: k) a b f. SendFOE (Tag (Yield a b) tag) f => a -> f b
yield'' :: forall {k} (key :: k) a b f. SendFOEBy key (Yield a b) f => a -> f b
yield_ :: Yield a () <: f => a -> f ()
data Status (f :: Type -> Type) a b r
Done :: r -> Status (f :: Type -> Type) a b r
Continue :: a -> (b -> f (Status f a b r)) -> Status (f :: Type -> Type) 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 :: Type -> Type) a
[CallCC] :: forall a (m :: Type -> Type). (forall r. () => (a -> m r) -> m a) -> CallCC m a
callCC :: forall a m. SendHOE CallCC m => (forall r. () => (a -> m r) -> m a) -> m a
callCC' :: forall {k} (tag :: k) a m. SendHOE (TagH CallCC tag) m => (forall r. () => (a -> m r) -> m a) -> m a
callCC'' :: forall {k} (key :: k) a m. SendHOEBy key CallCC m => (forall r. () => (a -> m r) -> m a) -> m a
module Data.Effect.Concurrent.Timer
data Timer a
[Clock] :: Timer DiffTime
[Sleep] :: DiffTime -> Timer ()
type LTimer = LiftFOE Timer
pattern LSleep :: forall a f. () => (a ~ (), ()) => DiffTime -> LiftFOE Timer f a
pattern LClock :: forall a f. () => (a ~ DiffTime, ()) => LiftFOE Timer f a
clock :: SendFOE Timer f => f DiffTime
clock' :: forall {k} (tag :: k) f. SendFOE (Tag Timer tag) f => f DiffTime
clock'' :: forall {k} (key :: k) f. SendFOEBy key Timer f => f DiffTime
sleep :: SendFOE Timer f => DiffTime -> f ()
sleep' :: forall {k} (tag :: k) f. SendFOE (Tag Timer tag) f => DiffTime -> f ()
sleep'' :: forall {k} (key :: k) f. SendFOEBy key Timer f => DiffTime -> f ()
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 :: (Timer <: m, Yield () () <: m, Monad m) => DiffTime -> m a
cyclicTimer :: (Timer <: m, Yield () DiffTime <: m, Monad m) => m a
data CyclicTimer a
[Wait] :: DiffTime -> CyclicTimer ()
type LCyclicTimer = LiftFOE CyclicTimer
pattern LWait :: forall a f. () => (a ~ (), ()) => DiffTime -> LiftFOE CyclicTimer f a
wait :: SendFOE CyclicTimer f => DiffTime -> f ()
wait' :: forall {k} (tag :: k) f. SendFOE (Tag CyclicTimer tag) f => DiffTime -> f ()
wait'' :: forall {k} (key :: k) f. SendFOEBy key CyclicTimer f => DiffTime -> f ()
module Data.Effect.Concurrent.Thread
data Thread' tid (f :: Type -> Type) a
[ForkThread] :: forall (f :: Type -> Type) tid. f () -> Thread' tid f tid
type Thread tid = ThreadKey ##> Thread' tid
data ThreadKey
forkThread'_ :: SendHOE (Thread' tid) f => f () -> f tid
forkThread' :: forall {k} (tag :: k) tid f. SendHOE (TagH (Thread' tid) tag) f => f () -> f tid
forkThread'' :: forall {k} (key :: k) tid f. SendHOEBy key (Thread' tid) f => f () -> f tid
forkThread :: SendHOEBy ThreadKey (Thread' tid) f => f () -> f tid
instance (() :: Constraint) => Data.Comp.Multi.HFunctor.HFunctor (Data.Effect.Concurrent.Thread.Thread' tid)
module Data.Effect.Chronicle
data ChronicleF c a
[Dictate] :: forall c. c -> ChronicleF c ()
[Confess] :: forall c a. c -> ChronicleF c a
data ChronicleH c (f :: Type -> Type) a
[Memento] :: forall (f :: Type -> Type) a1 c. f a1 -> ChronicleH c f (Either c a1)
[Absolve] :: forall a (f :: Type -> Type) c. a -> f a -> ChronicleH c f a
[Condemn] :: forall (f :: Type -> Type) a c. f a -> ChronicleH c f a
type LChronicleF c = LiftFOE ChronicleF c
pattern LConfess :: forall a c f a1. () => (a ~ a1, ()) => c -> LiftFOE (ChronicleF c) f a
pattern LDictate :: forall a c f. () => (a ~ (), ()) => c -> LiftFOE (ChronicleF c) f a
dictate :: SendFOE (ChronicleF c) f => c -> f ()
dictate' :: forall {k} (tag :: k) c f. SendFOE (Tag (ChronicleF c) tag) f => c -> f ()
dictate'' :: forall {k} (key :: k) c f. SendFOEBy key (ChronicleF c) f => c -> f ()
confess :: forall c a f. SendFOE (ChronicleF c) f => c -> f a
confess' :: forall {k} (tag :: k) c a f. SendFOE (Tag (ChronicleF c) tag) f => c -> f a
confess'' :: forall {k} (key :: k) c a f. SendFOEBy key (ChronicleF c) f => c -> f a
memento :: forall a c f. SendHOE (ChronicleH c) f => f a -> f (Either c a)
memento' :: forall {k} (tag :: k) a c f. SendHOE (TagH (ChronicleH c) tag) f => f a -> f (Either c a)
memento'' :: forall {k} (key :: k) a c f. SendHOEBy key (ChronicleH c) f => f a -> f (Either c a)
absolve :: forall a c f. SendHOE (ChronicleH c) f => a -> f a -> f a
absolve' :: forall {k} (tag :: k) a c f. SendHOE (TagH (ChronicleH c) tag) f => a -> f a -> f a
absolve'' :: forall {k} (key :: k) a c f. SendHOEBy key (ChronicleH c) f => a -> f a -> f a
condemn :: forall a c f. SendHOE (ChronicleH c) f => f a -> f a
condemn' :: forall {k} (tag :: k) a c f. SendHOE (TagH (ChronicleH c) tag) f => f a -> f a
condemn'' :: forall {k} (key :: k) a c f. SendHOEBy key (ChronicleH c) f => f a -> f a
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] :: forall w1 w. w1 -> Accum w ()
[Look] :: forall w. Accum w w
type LAccum w = LiftFOE Accum w
pattern LLook :: forall a w f. () => (a ~ w, ()) => LiftFOE (Accum w) f a
pattern LAdd :: forall a f1 f2 w. () => (a ~ (), ()) => w -> LiftFOE (Accum f1) f2 a
add :: forall w f1 f2. SendFOE (Accum f1) f2 => w -> f2 ()
add' :: forall {k} (tag :: k) w f1 f2. SendFOE (Tag (Accum f1) tag) f2 => w -> f2 ()
add'' :: forall {k} (key :: k) w f1 f2. SendFOEBy key (Accum f1) f2 => w -> f2 ()
look :: SendFOE (Accum w) f => f w
look' :: forall {k} (tag :: k) w f. SendFOE (Tag (Accum w) tag) f => f w
look'' :: forall {k} (key :: k) w f. SendFOEBy key (Accum w) f => f w