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
55import Prelude
66
77import Control.Comonad (class Comonad , extract )
8+ import Control.Comonad.Env.Trans (EnvT )
89import Control.Comonad.Store.Trans (StoreT (..))
10+ import Control.Comonad.Traced.Trans (TracedT )
11+ import Control.Comonad.Trans.Class (lower )
912import Control.Extend (duplicate )
1013
1114import Data.Tuple (Tuple (..))
15+ import Data.Monoid (class Monoid )
1216
1317-- | The `ComonadStore` type class represents those monads which support local position information via
1418-- | `pos` and `peek`.
@@ -52,3 +56,11 @@ seeks f = peeks f <<< duplicate
5256instance comonadStoreStoreT :: Comonad w => ComonadStore s (StoreT s w ) where
5357 pos (StoreT (Tuple f s)) = s
5458 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