File tree Expand file tree Collapse file tree 1 file changed +12
-0
lines changed
src/Control/Comonad/Store Expand file tree Collapse file tree 1 file changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -5,10 +5,14 @@ module Control.Comonad.Store.Class where
5
5
import Prelude
6
6
7
7
import Control.Comonad (class Comonad , extract )
8
+ import Control.Comonad.Env.Trans (EnvT )
8
9
import Control.Comonad.Store.Trans (StoreT (..))
10
+ import Control.Comonad.Traced.Trans (TracedT )
11
+ import Control.Comonad.Trans.Class (lower )
9
12
import Control.Extend (duplicate )
10
13
11
14
import Data.Tuple (Tuple (..))
15
+ import Data.Monoid (class Monoid )
12
16
13
17
-- | The `ComonadStore` type class represents those monads which support local position information via
14
18
-- | `pos` and `peek`.
@@ -52,3 +56,11 @@ seeks f = peeks f <<< duplicate
52
56
instance comonadStoreStoreT :: Comonad w => ComonadStore s (StoreT s w ) where
53
57
pos (StoreT (Tuple f s)) = s
54
58
peek s (StoreT (Tuple f _)) = extract f s
59
+
60
+ instance comonadStoreEnvT :: ComonadStore s w => ComonadStore s (EnvT e w ) where
61
+ pos = pos <<< lower
62
+ peek s = peek s <<< lower
63
+
64
+ instance comonadStoreTracedT :: (ComonadStore s w , Monoid m ) => ComonadStore s (TracedT m w ) where
65
+ pos = pos <<< lower
66
+ peek s = peek s <<< lower
You can’t perform that action at this time.
0 commit comments