packages feed

comonads-fd 0.7.0 → 0.9.0

raw patch · 4 files changed

+91/−37 lines, 4 filesdep +semigroupsdep ~comonaddep ~comonad-transformersPVP ok

version bump matches the API change (PVP)

Dependencies added: semigroups

Dependency ranges changed: comonad, comonad-transformers

API changes (from Hackage documentation)

- Control.Comonad.Store.Class: instance (ComonadStore s w, Monoid m) => ComonadStore s (TracedT m w)
- Control.Comonad.Traced.Class: instance (Comonad w, Monoid m) => ComonadTraced m (TracedT m w)
+ Control.Comonad.Env.Class: instance (ComonadEnv e w, Functor f) => ComonadEnv e (StreamT f w)
+ Control.Comonad.Env.Class: instance (ComonadEnv e w, Semigroup m, Monoid m) => ComonadEnv e (TracedT m w)
+ Control.Comonad.Store.Class: instance (ComonadStore s w, Functor f) => ComonadStore s (StreamT f w)
+ Control.Comonad.Store.Class: instance (ComonadStore s w, Semigroup m, Monoid m) => ComonadStore s (TracedT m w)
+ Control.Comonad.Traced.Class: instance (Comonad w, Semigroup m, Monoid m) => ComonadTraced m (TracedT m w)

Files

Control/Comonad/Env/Class.hs view
@@ -16,11 +16,17 @@  import Control.Comonad import Control.Comonad.Trans.Class-import qualified Control.Comonad.Trans.Env as T--- import qualified Control.Comonad.Trans.Pointer as P-import Control.Comonad.Trans.Store-import Control.Comonad.Trans.Discont+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 Control.Comonad.Trans.Traced+import Control.Comonad.Trans.Stream import Control.Comonad.Trans.Identity +import Data.Monoid+import Data.Semigroup -- import Data.Ix  class Comonad w => ComonadEnv e w | w -> e where@@ -30,9 +36,12 @@ asks f wa = f (ask wa) {-# INLINE asks #-} -instance Comonad w => ComonadEnv e (T.EnvT e w) where-  ask = T.ask+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 ComonadEnv e ((,)e) where   ask = fst @@ -45,11 +54,23 @@ -- instance (ComonadEnv e w, Ix i) => ComonadEnv e (PointerT i w) where --   ask = lowerAsk -instance ComonadEnv e w => ComonadEnv e (StoreT t w) where+instance ComonadEnv e w => ComonadEnv e (Strict.StoreT t w) where   ask = lowerAsk -instance ComonadEnv e w => ComonadEnv e (DiscontT t w) where+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 (IdentityT w) where+  ask = lowerAsk++instance (ComonadEnv e w, Semigroup m, Monoid m) => ComonadEnv e (TracedT m w) where+  ask = lowerAsk++instance (ComonadEnv e w, Functor f) => ComonadEnv e (StreamT f w) where   ask = lowerAsk
Control/Comonad/Store/Class.hs view
@@ -17,12 +17,17 @@  import Control.Comonad import Control.Comonad.Trans.Class-import qualified Control.Comonad.Trans.Store as T-import Control.Comonad.Trans.Discont-import Control.Comonad.Trans.Env+import qualified Control.Comonad.Trans.Store.Strict as Strict+import qualified Control.Comonad.Trans.Store.Lazy as Lazy+import qualified Control.Comonad.Trans.Discont.Strict as Strict+import qualified Control.Comonad.Trans.Discont.Lazy as Lazy+import qualified Control.Comonad.Trans.Env.Strict as Strict+import qualified Control.Comonad.Trans.Env.Lazy as Lazy+import Control.Comonad.Trans.Stream import Control.Comonad.Trans.Identity  import Control.Comonad.Trans.Traced import Data.Monoid+import Data.Semigroup -- import qualified Control.Comonad.Trans.Pointer as P -- import Data.Ix @@ -41,17 +46,15 @@ experiment ff wa = fmap (`modify` wa) ff {-# INLINE experiment #-} -instance Comonad w => ComonadStore s (T.StoreT s w) where-  get = T.get-  put = T.put-  modify = T.modify+instance Comonad w => ComonadStore s (Strict.StoreT s w) where+  get = Strict.get+  put = Strict.put+  modify = Strict.modify -{--instance (Comonad w, Ix i) => ComonadStore i (P.PointerT i w) where-  get = P.get-  put = P.put-  modify = P.modify--}+instance Comonad w => ComonadStore s (Lazy.StoreT s w) where+  get = Lazy.get+  put = Lazy.put+  modify = Lazy.modify  -- All of these require UndecidableInstances because they do not satisfy the coverage condition @@ -67,22 +70,37 @@ lowerModify f = modify f . lower {-# INLINE lowerModify #-} -instance ComonadStore s w => ComonadStore s (DiscontT k w) where+instance ComonadStore s w => ComonadStore s (Lazy.DiscontT k w) where   get = lowerGet   put = lowerPut   modify = lowerModify +instance ComonadStore s w => ComonadStore s (Strict.DiscontT k w) where+  get = lowerGet+  put = lowerPut+  modify = lowerModify+ instance ComonadStore s w => ComonadStore s (IdentityT w) where   get = lowerGet   put = lowerPut   modify = lowerModify -instance ComonadStore s w => ComonadStore s (EnvT e w) where+instance ComonadStore s w => ComonadStore s (Lazy.EnvT e w) where   get = lowerGet   put = lowerPut   modify = lowerModify -instance (ComonadStore s w, Monoid m) => ComonadStore s (TracedT m w) where+instance ComonadStore s w => ComonadStore s (Strict.EnvT e w) where+  get = lowerGet+  put = lowerPut+  modify = lowerModify++instance (ComonadStore s w, Semigroup m, Monoid m) => ComonadStore s (TracedT m w) where+  get = lowerGet+  put = lowerPut+  modify = lowerModify++instance (ComonadStore s w, Functor f) => ComonadStore s (StreamT f w) where   get = lowerGet   put = lowerPut   modify = lowerModify
Control/Comonad/Traced/Class.hs view
@@ -16,12 +16,17 @@  import Control.Comonad import Control.Comonad.Trans.Class-import qualified Control.Comonad.Trans.Traced as T-import Control.Comonad.Trans.Discont-import Control.Comonad.Trans.Env-import Control.Comonad.Trans.Store+import Control.Comonad.Trans.Traced (TracedT)+import qualified Control.Comonad.Trans.Traced as TracedT+import Control.Comonad.Trans.Env.Strict as Strict+import Control.Comonad.Trans.Store.Strict as Strict+import Control.Comonad.Trans.Discont.Strict as Strict+import Control.Comonad.Trans.Env.Lazy as Lazy+import Control.Comonad.Trans.Store.Lazy as Lazy+import Control.Comonad.Trans.Discont.Lazy as Lazy import Control.Comonad.Trans.Identity  import Data.Monoid+import Data.Semigroup  class Comonad w => ComonadTraced m w | w -> m where   trace :: m -> w a -> a@@ -30,8 +35,8 @@ traces f wa = trace (f (extract wa)) wa {-# INLINE traces #-} -instance (Comonad w, Monoid m) => ComonadTraced m (T.TracedT m w) where-  trace = T.trace+instance (Comonad w, Semigroup m, Monoid m) => ComonadTraced m (TracedT m w) where+  trace = TracedT.trace  lowerTrace :: (ComonadTrans t, ComonadTraced m w) => m -> t w a -> a lowerTrace m = trace m . lower@@ -39,14 +44,23 @@  -- All of these require UndecidableInstances because they do not satisfy the coverage condition -instance ComonadTraced m w => ComonadTraced m (DiscontT k w) where+instance ComonadTraced m w => ComonadTraced m (IdentityT w) where   trace = lowerTrace -instance ComonadTraced m w => ComonadTraced m (IdentityT w) where+instance ComonadTraced m w => ComonadTraced m (Strict.EnvT e w) where   trace = lowerTrace -instance ComonadTraced m w => ComonadTraced m (EnvT e w) where+instance ComonadTraced m w => ComonadTraced m (Strict.DiscontT k w) where   trace = lowerTrace -instance ComonadTraced m w => ComonadTraced m (StoreT s w) where+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
comonads-fd.cabal view
@@ -1,6 +1,6 @@ name:          comonads-fd category:      Control, Comonads-version:       0.7.0+version:       0.9.0 license:       BSD3 cabal-version: >= 1.6 license-file:  LICENSE@@ -21,8 +21,9 @@   build-depends:      base >= 4 && < 4.4,     transformers >= 0.2 && < 0.3,-    comonad >= 0.7 && < 0.8,-    comonad-transformers >= 0.7 && < 0.8+    semigroups >= 0.3.4 && < 0.4,+    comonad >= 0.9 && < 0.10,+    comonad-transformers >= 0.9 && < 0.10    exposed-modules:     Control.Comonad.Env