comonads-fd 2.0.2.1 → 2.1
raw patch · 13 files changed
+83/−357 lines, 13 filesdep ~comonaddep ~comonad-transformersdep ~mtlPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: comonad, comonad-transformers, mtl, semigroups, transformers
API changes (from Hackage documentation)
- Control.Comonad.Env.Class: instance (ComonadEnv e w, Monoid m) => ComonadEnv e (TracedT m w)
- Control.Comonad.Env.Class: instance ComonadEnv e w => ComonadEnv e (DiscontT t w)
- Control.Comonad.Env.Lazy: EnvT :: e -> w a -> EnvT e a
- Control.Comonad.Env.Lazy: ask :: ComonadEnv e w => w a -> e
- Control.Comonad.Env.Lazy: asks :: ComonadEnv e w => (e -> e') -> w a -> e'
- Control.Comonad.Env.Lazy: class Comonad w => ComonadEnv e w | w -> e
- Control.Comonad.Env.Lazy: data EnvT e (w :: * -> *) a :: * -> (* -> *) -> * -> *
- Control.Comonad.Env.Lazy: env :: e -> a -> Env e a
- Control.Comonad.Env.Lazy: local :: (e -> e) -> EnvT e w a -> EnvT e w a
- Control.Comonad.Env.Lazy: runEnv :: Env e a -> (e, a)
- Control.Comonad.Env.Lazy: runEnvT :: EnvT e w a -> (e, w a)
- Control.Comonad.Env.Lazy: type Env e = EnvT e Identity
- Control.Comonad.Env.Strict: EnvT :: e -> w a -> EnvT e a
- Control.Comonad.Env.Strict: ask :: ComonadEnv e w => w a -> e
- Control.Comonad.Env.Strict: asks :: ComonadEnv e w => (e -> e') -> w a -> e'
- Control.Comonad.Env.Strict: class Comonad w => ComonadEnv e w | w -> e
- Control.Comonad.Env.Strict: data EnvT e (w :: * -> *) a :: * -> (* -> *) -> * -> *
- Control.Comonad.Env.Strict: env :: e -> a -> Env e a
- Control.Comonad.Env.Strict: local :: (e -> e) -> EnvT e w a -> EnvT e w a
- Control.Comonad.Env.Strict: runEnv :: Env e a -> (e, a)
- Control.Comonad.Env.Strict: runEnvT :: EnvT e w a -> (e, w a)
- Control.Comonad.Env.Strict: type Env e = EnvT e Identity
- Control.Comonad.Store.Class: instance (ComonadStore s w, Monoid m) => ComonadStore s (TracedT m w)
- Control.Comonad.Store.Class: instance ComonadStore s w => ComonadStore s (DiscontT k w)
- Control.Comonad.Store.Lazy: StoreT :: w (s -> a) -> s -> StoreT s a
- Control.Comonad.Store.Lazy: class Comonad w => ComonadStore s w | w -> s where peeks f w = peek (f (pos w)) w seek s = peek s . duplicate seeks f = peeks f . duplicate
- Control.Comonad.Store.Lazy: data StoreT s (w :: * -> *) a :: * -> (* -> *) -> * -> *
- Control.Comonad.Store.Lazy: peek :: ComonadStore s w => s -> w a -> a
- Control.Comonad.Store.Lazy: peeks :: ComonadStore s w => (s -> s) -> w a -> a
- Control.Comonad.Store.Lazy: pos :: ComonadStore s w => w a -> s
- Control.Comonad.Store.Lazy: runStore :: Store s a -> (s -> a, s)
- Control.Comonad.Store.Lazy: runStoreT :: StoreT s w a -> (w (s -> a), s)
- Control.Comonad.Store.Lazy: seek :: ComonadStore s w => s -> w a -> w a
- Control.Comonad.Store.Lazy: seeks :: ComonadStore s w => (s -> s) -> w a -> w a
- Control.Comonad.Store.Lazy: store :: (s -> a) -> s -> Store s a
- Control.Comonad.Store.Lazy: type Store s = StoreT s Identity
- Control.Comonad.Store.Memo: class Comonad w => ComonadStore s w | w -> s where peeks f w = peek (f (pos w)) w seek s = peek s . duplicate seeks f = peeks f . duplicate
- Control.Comonad.Store.Memo: data StoreT s (w :: * -> *) a :: * -> (* -> *) -> * -> *
- Control.Comonad.Store.Memo: peek :: ComonadStore s w => s -> w a -> a
- Control.Comonad.Store.Memo: peeks :: ComonadStore s w => (s -> s) -> w a -> a
- Control.Comonad.Store.Memo: pos :: ComonadStore s w => w a -> s
- Control.Comonad.Store.Memo: runStore :: Store s a -> (s -> a, s)
- Control.Comonad.Store.Memo: runStoreT :: StoreT s w a -> (w (s -> a), s)
- Control.Comonad.Store.Memo: seek :: ComonadStore s w => s -> w a -> w a
- Control.Comonad.Store.Memo: seeks :: ComonadStore s w => (s -> s) -> w a -> w a
- Control.Comonad.Store.Memo: store :: (s -> a) -> s -> Store s a
- Control.Comonad.Store.Memo: storeT :: Functor w => w (s -> a) -> s -> StoreT s w a
- Control.Comonad.Store.Memo: type Store s = StoreT s Identity
- Control.Comonad.Store.Strict: StoreT :: w (s -> a) -> s -> StoreT s a
- Control.Comonad.Store.Strict: class Comonad w => ComonadStore s w | w -> s where peeks f w = peek (f (pos w)) w seek s = peek s . duplicate seeks f = peeks f . duplicate
- Control.Comonad.Store.Strict: data StoreT s (w :: * -> *) a :: * -> (* -> *) -> * -> *
- Control.Comonad.Store.Strict: peek :: ComonadStore s w => s -> w a -> a
- Control.Comonad.Store.Strict: peeks :: ComonadStore s w => (s -> s) -> w a -> a
- Control.Comonad.Store.Strict: pos :: ComonadStore s w => w a -> s
- Control.Comonad.Store.Strict: runStore :: Store s a -> (s -> a, s)
- Control.Comonad.Store.Strict: runStoreT :: StoreT s w a -> (w (s -> a), s)
- Control.Comonad.Store.Strict: seek :: ComonadStore s w => s -> w a -> w a
- Control.Comonad.Store.Strict: seeks :: ComonadStore s w => (s -> s) -> w a -> w a
- Control.Comonad.Store.Strict: store :: (s -> a) -> s -> Store s a
- Control.Comonad.Store.Strict: type Store s = StoreT s Identity
- Control.Comonad.Traced.Class: instance (Comonad w, Monoid m) => ComonadTraced m (TracedT m w)
- Control.Comonad.Traced.Class: instance ComonadTraced m w => ComonadTraced m (DiscontT k w)
- Control.Comonad.Traced.Memo: class Comonad w => ComonadTraced m w | w -> m
- Control.Comonad.Traced.Memo: data TracedT m (w :: * -> *) a :: * -> (* -> *) -> * -> *
- Control.Comonad.Traced.Memo: runTraced :: Traced m a -> m -> a
- Control.Comonad.Traced.Memo: runTracedT :: TracedT m w a -> w (m -> a)
- Control.Comonad.Traced.Memo: trace :: ComonadTraced m w => m -> w a -> a
- Control.Comonad.Traced.Memo: traced :: Monoid m => (m -> a) -> Traced m a
- Control.Comonad.Traced.Memo: tracedT :: (Functor w, Monoid m) => w (m -> a) -> TracedT m w a
- Control.Comonad.Traced.Memo: traces :: ComonadTraced m w => (a -> m) -> w a -> a
- Control.Comonad.Traced.Memo: type Traced m = TracedT m Identity
+ Control.Comonad.Env: EnvT :: e -> w a -> EnvT e a
+ Control.Comonad.Env: ask :: ComonadEnv e w => w a -> e
+ Control.Comonad.Env: asks :: ComonadEnv e w => (e -> e') -> w a -> e'
+ Control.Comonad.Env: class Comonad w => ComonadEnv e w | w -> e
+ Control.Comonad.Env: data EnvT e (w :: * -> *) a :: * -> (* -> *) -> * -> *
+ Control.Comonad.Env: env :: e -> a -> Env e a
+ Control.Comonad.Env: local :: (e -> e) -> EnvT e w a -> EnvT e w a
+ Control.Comonad.Env: runEnv :: Env e a -> (e, a)
+ Control.Comonad.Env: runEnvT :: EnvT e w a -> (e, w a)
+ Control.Comonad.Env: type Env e = EnvT e Identity
+ Control.Comonad.Store: StoreT :: w (s -> a) -> s -> StoreT s a
+ Control.Comonad.Store: class Comonad w => ComonadStore s w | w -> s where peeks f w = peek (f (pos w)) w seek s = peek s . duplicate seeks f = peeks f . duplicate
+ Control.Comonad.Store: data StoreT s (w :: * -> *) a :: * -> (* -> *) -> * -> *
+ Control.Comonad.Store: peek :: ComonadStore s w => s -> w a -> a
+ Control.Comonad.Store: peeks :: ComonadStore s w => (s -> s) -> w a -> a
+ Control.Comonad.Store: pos :: ComonadStore s w => w a -> s
+ Control.Comonad.Store: runStore :: Store s a -> (s -> a, s)
+ Control.Comonad.Store: runStoreT :: StoreT s w a -> (w (s -> a), s)
+ Control.Comonad.Store: seek :: ComonadStore s w => s -> w a -> w a
+ Control.Comonad.Store: seeks :: ComonadStore s w => (s -> s) -> w a -> w a
+ Control.Comonad.Store: store :: (s -> a) -> s -> Store s a
+ Control.Comonad.Store: type Store s = StoreT s Identity
Files
- Control/Comonad/Env.hs +26/−3
- Control/Comonad/Env/Class.hs +9/−44
- Control/Comonad/Env/Lazy.hs +0/−38
- Control/Comonad/Env/Strict.hs +0/−38
- Control/Comonad/Store.hs +17/−3
- Control/Comonad/Store/Class.hs +15/−61
- Control/Comonad/Store/Lazy.hs +0/−29
- Control/Comonad/Store/Memo.hs +0/−30
- Control/Comonad/Store/Strict.hs +0/−29
- Control/Comonad/Traced.hs +1/−1
- Control/Comonad/Traced/Class.hs +9/−38
- Control/Comonad/Traced/Memo.hs +0/−31
- comonads-fd.cabal +6/−12
Control/Comonad/Env.hs view
@@ -7,9 +7,32 @@ -- Maintainer : Edward Kmett <ekmett@gmail.com> -- Stability : experimental -- Portability : non-portable (fundeps, MPTCs)+--+-- The Env comonad (aka the Coreader, Environment, or Product comonad)+--+-- A co-Kleisli arrow in the Env comonad is isomorphic to a Kleisli arrow+-- in the reader monad.+--+-- (a -> e -> m) ~ (a, e) -> m ~ Env e a -> m -----------------------------------------------------------------------------module Control.Comonad.Env ( - module Control.Comonad.Env.Lazy+module Control.Comonad.Env (+ -- * ComonadEnv class+ ComonadEnv(..)+ , asks+ , local+ -- * The Env comonad+ , Env+ , env+ , runEnv+ -- * The EnvT comonad transformer+ , EnvT(..)+ , runEnvT+ -- * Re-exported modules+ , module Control.Comonad+ , module Control.Comonad.Trans.Class ) where -import Control.Comonad.Env.Lazy+import Control.Comonad+import Control.Comonad.Env.Class (ComonadEnv(..), asks)+import Control.Comonad.Trans.Class+import Control.Comonad.Trans.Env (Env, env, runEnv, EnvT(..), runEnvT, local)
Control/Comonad/Env/Class.hs view
@@ -9,26 +9,18 @@ -- Stability : experimental -- Portability : non-portable (fundeps, MPTCs) -----------------------------------------------------------------------------module Control.Comonad.Env.Class +module Control.Comonad.Env.Class ( ComonadEnv(..) , asks ) where import Control.Comonad import Control.Comonad.Trans.Class-import qualified Control.Comonad.Trans.Env.Lazy as Lazy-import qualified Control.Comonad.Trans.Store.Lazy as Lazy-import qualified Control.Comonad.Trans.Discont.Lazy as Lazy-import qualified Control.Comonad.Trans.Env.Strict as Strict-import qualified Control.Comonad.Trans.Store.Strict as Strict-import qualified Control.Comonad.Trans.Discont.Strict as Strict-import qualified Control.Comonad.Trans.Traced as Simple-import qualified Control.Comonad.Trans.Traced.Memo as Memo-import qualified Control.Comonad.Trans.Store.Memo as Memo-import qualified Control.Comonad.Trans.Discont.Memo as Memo-import Control.Comonad.Trans.Identity +import qualified Control.Comonad.Trans.Env as Env+import Control.Comonad.Trans.Store+import Control.Comonad.Trans.Traced+import Control.Comonad.Trans.Identity import Data.Semigroup--- import Data.Ix class Comonad w => ComonadEnv e w | w -> e where ask :: w a -> e@@ -37,11 +29,8 @@ asks f wa = f (ask wa) {-# INLINE asks #-} -instance Comonad w => ComonadEnv e (Lazy.EnvT e w) where- ask = Lazy.ask--instance Comonad w => ComonadEnv e (Strict.EnvT e w) where- ask = Strict.ask+instance Comonad w => ComonadEnv e (Env.EnvT e w) where+ ask = Env.ask instance ComonadEnv e ((,)e) where ask = fst@@ -50,35 +39,11 @@ lowerAsk = ask . lower {-# INLINE lowerAsk #-} --- All of these require UndecidableInstances because they do not satisfy the coverage condition---- instance (ComonadEnv e w, Ix i) => ComonadEnv e (PointerT i w) where--- ask = lowerAsk--instance ComonadEnv e w => ComonadEnv e (Strict.StoreT t w) where- ask = lowerAsk--instance ComonadEnv e w => ComonadEnv e (Strict.DiscontT t w) where- ask = lowerAsk--instance ComonadEnv e w => ComonadEnv e (Lazy.StoreT t w) where- ask = lowerAsk--instance ComonadEnv e w => ComonadEnv e (Lazy.DiscontT t w) where- ask = lowerAsk--instance ComonadEnv e w => ComonadEnv e (Memo.StoreT t w) where- ask = lowerAsk--instance ComonadEnv e w => ComonadEnv e (Memo.DiscontT t w) where+instance ComonadEnv e w => ComonadEnv e (StoreT t w) where ask = lowerAsk instance ComonadEnv e w => ComonadEnv e (IdentityT w) where ask = lowerAsk -instance (ComonadEnv e w, Semigroup m, Monoid m) => ComonadEnv e (Simple.TracedT m w) where- ask = lowerAsk--instance (ComonadEnv e w, Monoid m) => ComonadEnv e (Memo.TracedT m w) where+instance (ComonadEnv e w, Semigroup m, Monoid m) => ComonadEnv e (TracedT m w) where ask = lowerAsk-
− Control/Comonad/Env/Lazy.hs
@@ -1,38 +0,0 @@--------------------------------------------------------------------------------- |--- Module : Control.Comonad.Env.Lazy--- Copyright : (C) 2008-2011 Edward Kmett--- License : BSD-style (see the file LICENSE)------ Maintainer : Edward Kmett <ekmett@gmail.com>--- Stability : experimental--- Portability : non-portable (fundeps, MPTCs)------ The Env comonad (aka the Coreader, Environment, or Product comonad)--- --- A co-Kleisli arrow in the Env comonad is isomorphic to a Kleisli arrow--- in the reader monad.------ (a -> e -> m) ~ (a, e) -> m ~ Env e a -> m------------------------------------------------------------------------------module Control.Comonad.Env.Lazy ( - -- * ComonadEnv class- ComonadEnv(..)- , asks- , local- -- * The Env comonad- , Env- , env- , runEnv- -- * The EnvT comonad transformer- , EnvT(..)- , runEnvT- -- * Re-exported modules- , module Control.Comonad- , module Control.Comonad.Trans.Class- ) where--import Control.Comonad-import Control.Comonad.Env.Class (ComonadEnv(..), asks)-import Control.Comonad.Trans.Class-import Control.Comonad.Trans.Env.Lazy (Env, env, runEnv, EnvT(..), runEnvT, local)
− Control/Comonad/Env/Strict.hs
@@ -1,38 +0,0 @@--------------------------------------------------------------------------------- |--- Module : Control.Comonad.Env.Strict--- Copyright : (C) 2008-2011 Edward Kmett--- License : BSD-style (see the file LICENSE)------ Maintainer : Edward Kmett <ekmett@gmail.com>--- Stability : experimental--- Portability : non-portable (fundeps, MPTCs)------ The Env comonad (aka the Coreader, Environment, or Product comonad)--- --- A co-Kleisli arrow in the Env comonad is isomorphic to a Kleisli arrow--- in the reader monad.------ (a -> e -> m) ~ (a, e) -> m ~ Env e a -> m------------------------------------------------------------------------------module Control.Comonad.Env.Strict ( - -- * ComonadEnv class- ComonadEnv(..)- , asks- , local- -- * The Env comonad- , Env- , env- , runEnv- -- * The EnvT comonad transformer- , EnvT(..)- , runEnvT- -- * Re-exported modules- , module Control.Comonad- , module Control.Comonad.Trans.Class- ) where--import Control.Comonad-import Control.Comonad.Env.Class (ComonadEnv(..), asks)-import Control.Comonad.Trans.Class-import Control.Comonad.Trans.Env.Strict (Env, env, runEnv, EnvT(..), runEnvT, local)
Control/Comonad/Store.hs view
@@ -8,8 +8,22 @@ -- Stability : experimental -- Portability : non-portable (fundeps, MPTCs) -----------------------------------------------------------------------------module Control.Comonad.Store ( - module Control.Comonad.Store.Lazy+module Control.Comonad.Store (+ -- * ComonadStore class+ ComonadStore(..)+ -- * The Store comonad+ , Store+ , store+ , runStore+ -- * The StoreT comonad transformer+ , StoreT(..)+ , runStoreT+ -- * Re-exported modules+ , module Control.Comonad+ , module Control.Comonad.Trans.Class ) where -import Control.Comonad.Store.Lazy+import Control.Comonad+import Control.Comonad.Store.Class (ComonadStore(..))+import Control.Comonad.Trans.Class+import Control.Comonad.Trans.Store (Store, store, runStore, StoreT(..), runStoreT)
Control/Comonad/Store/Class.hs view
@@ -9,7 +9,7 @@ -- Stability : experimental -- Portability : non-portable (fundeps, MPTCs) -----------------------------------------------------------------------------module Control.Comonad.Store.Class +module Control.Comonad.Store.Class ( ComonadStore(..) , lowerPos , lowerPeek@@ -17,20 +17,10 @@ import Control.Comonad import Control.Comonad.Trans.Class-import qualified Control.Comonad.Trans.Env.Strict as Strict-import qualified Control.Comonad.Trans.Store.Strict as Strict-import qualified Control.Comonad.Trans.Discont.Strict as Strict--import qualified Control.Comonad.Trans.Env.Lazy as Lazy-import qualified Control.Comonad.Trans.Store.Lazy as Lazy-import qualified Control.Comonad.Trans.Discont.Lazy as Lazy--import qualified Control.Comonad.Trans.Traced as Simple--import qualified Control.Comonad.Trans.Traced.Memo as Memo-import qualified Control.Comonad.Trans.Store.Memo as Memo-import qualified Control.Comonad.Trans.Discont.Memo as Memo-import Control.Comonad.Trans.Identity +import Control.Comonad.Trans.Env+import qualified Control.Comonad.Trans.Store as Store+import Control.Comonad.Trans.Traced+import Control.Comonad.Trans.Identity import Data.Semigroup class Comonad w => ComonadStore s w | w -> s where@@ -39,35 +29,19 @@ peeks :: (s -> s) -> w a -> a peeks f w = peek (f (pos w)) w- + seek :: s -> w a -> w a seek s = peek s . duplicate- + seeks :: (s -> s) -> w a -> w a seeks f = peeks f . duplicate -instance Comonad w => ComonadStore s (Strict.StoreT s w) where- pos = Strict.pos- peek = Strict.peek- peeks = Strict.peeks- seek = Strict.seek- seeks = Strict.seeks--instance Comonad w => ComonadStore s (Lazy.StoreT s w) where- pos = Lazy.pos- peek = Lazy.peek- peeks = Lazy.peeks- seek = Lazy.seek- seeks = Lazy.seeks--instance Comonad w => ComonadStore s (Memo.StoreT s w) where- pos = Memo.pos- peek = Memo.peek- peeks = Memo.peeks- seek = Memo.seek- seeks = Memo.seeks---- All of these require UndecidableInstances because they do not satisfy the coverage condition+instance Comonad w => ComonadStore s (Store.StoreT s w) where+ pos = Store.pos+ peek = Store.peek+ peeks = Store.peeks+ seek = Store.seek+ seeks = Store.seeks lowerPos :: (ComonadTrans t, ComonadStore s w) => t w a -> s lowerPos = pos . lower@@ -77,34 +51,14 @@ lowerPeek s = peek s . lower {-# INLINE lowerPeek #-} -instance ComonadStore s w => ComonadStore s (Lazy.DiscontT k w) where- pos = lowerPos- peek = lowerPeek--instance ComonadStore s w => ComonadStore s (Memo.DiscontT k w) where- pos = lowerPos- peek = lowerPeek--instance ComonadStore s w => ComonadStore s (Strict.DiscontT k w) where- pos = lowerPos- peek = lowerPeek- instance ComonadStore s w => ComonadStore s (IdentityT w) where pos = lowerPos peek = lowerPeek -instance ComonadStore s w => ComonadStore s (Lazy.EnvT e w) where- pos = lowerPos- peek = lowerPeek--instance ComonadStore s w => ComonadStore s (Strict.EnvT e w) where- pos = lowerPos- peek = lowerPeek--instance (ComonadStore s w, Semigroup m, Monoid m) => ComonadStore s (Simple.TracedT m w) where+instance ComonadStore s w => ComonadStore s (EnvT e w) where pos = lowerPos peek = lowerPeek -instance (ComonadStore s w, Monoid m) => ComonadStore s (Memo.TracedT m w) where+instance (ComonadStore s w, Semigroup m, Monoid m) => ComonadStore s (TracedT m w) where pos = lowerPos peek = lowerPeek
− Control/Comonad/Store/Lazy.hs
@@ -1,29 +0,0 @@--------------------------------------------------------------------------------- |--- Module : Control.Comonad.Store.Lazy--- Copyright : (C) 2008-2011 Edward Kmett--- License : BSD-style (see the file LICENSE)------ Maintainer : Edward Kmett <ekmett@gmail.com>--- Stability : experimental--- Portability : non-portable (fundeps, MPTCs)------------------------------------------------------------------------------module Control.Comonad.Store.Lazy ( - -- * ComonadStore class- ComonadStore(..)- -- * The Store comonad- , Store- , store- , runStore- -- * The StoreT comonad transformer- , StoreT(..)- , runStoreT- -- * Re-exported modules- , module Control.Comonad- , module Control.Comonad.Trans.Class- ) where--import Control.Comonad-import Control.Comonad.Store.Class (ComonadStore(..))-import Control.Comonad.Trans.Class-import Control.Comonad.Trans.Store.Lazy (Store, store, runStore, StoreT(..), runStoreT)
− Control/Comonad/Store/Memo.hs
@@ -1,30 +0,0 @@--------------------------------------------------------------------------------- |--- Module : Control.Comonad.Store.Memo--- Copyright : (C) 2008-2011 Edward Kmett--- License : BSD-style (see the file LICENSE)------ Maintainer : Edward Kmett <ekmett@gmail.com>--- Stability : experimental--- Portability : non-portable (fundeps, MPTCs)------------------------------------------------------------------------------module Control.Comonad.Store.Memo ( - -- * ComonadStore class- ComonadStore(..)- -- * The Store comonad- , Store- , store- , runStore- -- * The StoreT comonad transformer- , StoreT- , storeT- , runStoreT- -- * Re-exported modules- , module Control.Comonad- , module Control.Comonad.Trans.Class- ) where--import Control.Comonad-import Control.Comonad.Store.Class (ComonadStore(..))-import Control.Comonad.Trans.Class-import Control.Comonad.Trans.Store.Memo (Store, store, runStore, StoreT, storeT, runStoreT)
− Control/Comonad/Store/Strict.hs
@@ -1,29 +0,0 @@--------------------------------------------------------------------------------- |--- Module : Control.Comonad.Store.Strict--- Copyright : (C) 2008-2011 Edward Kmett--- License : BSD-style (see the file LICENSE)------ Maintainer : Edward Kmett <ekmett@gmail.com>--- Stability : experimental--- Portability : non-portable (fundeps, MPTCs)------------------------------------------------------------------------------module Control.Comonad.Store.Strict ( - -- * ComonadStore class- ComonadStore(..)- -- * The Store comonad- , Store- , store- , runStore- -- * The StoreT comonad transformer- , StoreT(..)- , runStoreT- -- * Re-exported modules- , module Control.Comonad- , module Control.Comonad.Trans.Class- ) where--import Control.Comonad-import Control.Comonad.Store.Class (ComonadStore(..))-import Control.Comonad.Trans.Class-import Control.Comonad.Trans.Store.Strict (Store, store, runStore, StoreT(..), runStoreT)
Control/Comonad/Traced.hs view
@@ -8,7 +8,7 @@ -- Stability : experimental -- Portability : non-portable (fundeps, MPTCs) -----------------------------------------------------------------------------module Control.Comonad.Traced ( +module Control.Comonad.Traced ( -- * ComonadTraced class ComonadTraced(..) , traces
Control/Comonad/Traced/Class.hs view
@@ -9,24 +9,17 @@ -- Stability : experimental -- Portability : non-portable (fundeps, MPTCs) -----------------------------------------------------------------------------module Control.Comonad.Traced.Class +module Control.Comonad.Traced.Class ( ComonadTraced(..) , traces ) where import Control.Comonad import Control.Comonad.Trans.Class-import qualified Control.Comonad.Trans.Env.Strict as Strict-import qualified Control.Comonad.Trans.Store.Strict as Strict-import qualified Control.Comonad.Trans.Discont.Strict as Strict-import qualified Control.Comonad.Trans.Env.Lazy as Lazy-import qualified Control.Comonad.Trans.Store.Lazy as Lazy-import qualified Control.Comonad.Trans.Discont.Lazy as Lazy-import qualified Control.Comonad.Trans.Traced as Simple-import qualified Control.Comonad.Trans.Traced.Memo as Memo-import qualified Control.Comonad.Trans.Store.Memo as Memo-import qualified Control.Comonad.Trans.Discont.Memo as Memo-import Control.Comonad.Trans.Identity +import Control.Comonad.Trans.Env+import Control.Comonad.Trans.Store+import qualified Control.Comonad.Trans.Traced as Traced+import Control.Comonad.Trans.Identity import Data.Semigroup class Comonad w => ComonadTraced m w | w -> m where@@ -36,11 +29,8 @@ traces f wa = trace (f (extract wa)) wa {-# INLINE traces #-} -instance (Comonad w, Semigroup m, Monoid m) => ComonadTraced m (Simple.TracedT m w) where- trace = Simple.trace--instance (Comonad w, Monoid m) => ComonadTraced m (Memo.TracedT m w) where- trace = Memo.trace+instance (Comonad w, Semigroup m, Monoid m) => ComonadTraced m (Traced.TracedT m w) where+ trace = Traced.trace lowerTrace :: (ComonadTrans t, ComonadTraced m w) => m -> t w a -> a lowerTrace m = trace m . lower@@ -51,27 +41,8 @@ instance ComonadTraced m w => ComonadTraced m (IdentityT w) where trace = lowerTrace -instance ComonadTraced m w => ComonadTraced m (Strict.EnvT e w) where- trace = lowerTrace--instance ComonadTraced m w => ComonadTraced m (Strict.DiscontT k w) where- trace = lowerTrace--instance ComonadTraced m w => ComonadTraced m (Strict.StoreT s w) where- trace = lowerTrace--instance ComonadTraced m w => ComonadTraced m (Lazy.EnvT e w) where- trace = lowerTrace--instance ComonadTraced m w => ComonadTraced m (Lazy.DiscontT k w) where- trace = lowerTrace--instance ComonadTraced m w => ComonadTraced m (Lazy.StoreT s w) where- trace = lowerTrace--instance ComonadTraced m w => ComonadTraced m (Memo.DiscontT k w) where+instance ComonadTraced m w => ComonadTraced m (EnvT e w) where trace = lowerTrace -instance ComonadTraced m w => ComonadTraced m (Memo.StoreT s w) where+instance ComonadTraced m w => ComonadTraced m (StoreT s w) where trace = lowerTrace-
− Control/Comonad/Traced/Memo.hs
@@ -1,31 +0,0 @@--------------------------------------------------------------------------------- |--- Module : Control.Comonad.Traced.Memo--- Copyright : (C) 2008-2011 Edward Kmett--- License : BSD-style (see the file LICENSE)------ Maintainer : Edward Kmett <ekmett@gmail.com>--- Stability : experimental--- Portability : non-portable (fundeps, MPTCs)------------------------------------------------------------------------------module Control.Comonad.Traced.Memo ( - -- * ComonadTraced class- ComonadTraced(..)- , traces- -- * The Traced comonad- , Traced- , traced- , runTraced- -- * The TracedT comonad transformer- , TracedT- , tracedT- , runTracedT- -- * Re-exported modules- , module Control.Comonad- , module Control.Comonad.Trans.Class- ) where--import Control.Comonad-import Control.Comonad.Traced.Class (ComonadTraced(..), traces)-import Control.Comonad.Trans.Class-import Control.Comonad.Trans.Traced.Memo (Traced, traced, runTraced, TracedT, tracedT, runTracedT)
comonads-fd.cabal view
@@ -1,6 +1,6 @@ name: comonads-fd category: Control, Comonads-version: 2.0.2.1+version: 2.1 license: BSD3 cabal-version: >= 1.6 license-file: LICENSE@@ -25,26 +25,20 @@ UndecidableInstances build-depends: base >= 4 && < 5,- transformers >= 0.2 && < 0.3,- mtl >= 2.0.1.0 && <= 2.1,- semigroups >= 0.8 && < 0.9,- comonad >= 1.1.1.1 && < 1.2,- comonad-transformers >= 2.0.3 && < 2.1+ transformers >= 0.3 && < 0.4,+ mtl >= 2.1 && < 2.2,+ semigroups >= 0.8.2 && < 0.9,+ comonad >= 1.1.1.3 && < 1.2,+ comonad-transformers >= 2.1 && < 2.2 exposed-modules: Control.Comonad.Env Control.Comonad.Env.Class- Control.Comonad.Env.Strict- Control.Comonad.Env.Lazy Control.Comonad.Identity Control.Comonad.Store Control.Comonad.Store.Class- Control.Comonad.Store.Strict- Control.Comonad.Store.Lazy- Control.Comonad.Store.Memo Control.Comonad.Traced Control.Comonad.Traced.Class- Control.Comonad.Traced.Memo ghc-options: -Wall