on master help sign in
Expose all data types from Effectful.Internal.Env
1fdb00aAndrzej Rybczak
effectful-core/src/Effectful/Internal/Env.hs+18−4
@@ -4,22 +4,34 @@
4-- This module is intended for internal use only, and may change without warning
4-- This module is intended for internal use only, and may change without warning
5-- in subsequent releases.
5-- in subsequent releases.
6module Effectful.Internal.Env
6module Effectful.Internal.Env
7+ ( -- * The environment
7− ( Env
8+ Env(..)
9+ , Forks(..)
10+ , EnvRef(..)
11+
12+ -- ** ForkId
13+ , ForkId(..)
14+ , ForkIdGen(..)
15+ , newForkIdGen
16+ , cloneForkIdGen
17+ , newForkId
18+
19+ -- ** Relinker
8 , Relinker(..)
20 , Relinker(..)
9 , noRelinker
21 , noRelinker
10
22
11− -- * Operations
23+ -- * Operations
12 , emptyEnv
24 , emptyEnv
13 , cloneEnv
25 , cloneEnv
14 , forkEnv
26 , forkEnv
15 , sizeEnv
27 , sizeEnv
16 , checkSizeEnv
28 , checkSizeEnv
17
29
18− -- ** Extending and shrinking
30+ -- ** Extending and shrinking
19 , unsafeConsEnv
31 , unsafeConsEnv
20 , unsafeTailEnv
32 , unsafeTailEnv
21
33
22− -- ** Data retrieval and update
34+ -- ** Data retrieval and update
23 , getEnv
35 , getEnv
24 , putEnv
36 , putEnv
25 , stateEnv
37 , stateEnv
@@ -116,6 +128,7 @@ data Env (es :: [Effect]) = Env
116-- | Local forks of the environment.
128-- | Local forks of the environment.
117data Forks = Forks !ForkId !Int !(IORef EnvRef) Forks | NoFork
129data Forks = Forks !ForkId !Int !(IORef EnvRef) Forks | NoFork
118
130
131+-- | Data held in the environment.
119data EnvRef = EnvRef
132data EnvRef = EnvRef
120 { _size :: !Int
133 { _size :: !Int
121 , _data :: !(SmallMutableArray RealWorld Any)
134 , _data :: !(SmallMutableArray RealWorld Any)
@@ -125,6 +138,7 @@ data EnvRef = EnvRef
125----------------------------------------
138----------------------------------------
126-- ForkId
139-- ForkId
127
140
141+-- | Internal id of the fork.
128newtype ForkId = ForkId { unForkId :: Int }
142newtype ForkId = ForkId { unForkId :: Int }
129
143
130-- | 'ForkId' generation.
144-- | 'ForkId' generation.