packages feed

comonads-fd 1.4.0 → 1.5.0

raw patch · 5 files changed

+55/−54 lines, 5 filesdep ~comonad-transformersPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: comonad-transformers

API changes (from Hackage documentation)

- Control.Comonad.Store.Class: experiment :: (ComonadStore s w, Functor f) => f (s -> s) -> w a -> f a
- Control.Comonad.Store.Class: get :: ComonadStore s w => w a -> s
- Control.Comonad.Store.Class: gets :: ComonadStore s w => (s -> t) -> w a -> t
- Control.Comonad.Store.Class: lowerGet :: (ComonadTrans t, ComonadStore s w) => t w a -> s
- Control.Comonad.Store.Class: modify :: ComonadStore s w => (s -> s) -> w a -> w a
- Control.Comonad.Store.Class: put :: ComonadStore s w => s -> w a -> w a
- Control.Comonad.Store.Lazy: experiment :: (ComonadStore s w, Functor f) => f (s -> s) -> w a -> f a
- Control.Comonad.Store.Lazy: get :: ComonadStore s w => w a -> s
- Control.Comonad.Store.Lazy: gets :: ComonadStore s w => (s -> t) -> w a -> t
- Control.Comonad.Store.Lazy: modify :: ComonadStore s w => (s -> s) -> w a -> w a
- Control.Comonad.Store.Lazy: put :: ComonadStore s w => s -> w a -> w a
- Control.Comonad.Store.Memo: experiment :: (ComonadStore s w, Functor f) => f (s -> s) -> w a -> f a
- Control.Comonad.Store.Memo: get :: ComonadStore s w => w a -> s
- Control.Comonad.Store.Memo: gets :: ComonadStore s w => (s -> t) -> w a -> t
- Control.Comonad.Store.Memo: modify :: ComonadStore s w => (s -> s) -> w a -> w a
- Control.Comonad.Store.Memo: put :: ComonadStore s w => s -> w a -> w a
- Control.Comonad.Store.Strict: experiment :: (ComonadStore s w, Functor f) => f (s -> s) -> w a -> f a
- Control.Comonad.Store.Strict: get :: ComonadStore s w => w a -> s
- Control.Comonad.Store.Strict: gets :: ComonadStore s w => (s -> t) -> w a -> t
- Control.Comonad.Store.Strict: modify :: ComonadStore s w => (s -> s) -> w a -> w a
- Control.Comonad.Store.Strict: put :: ComonadStore s w => s -> w a -> w a
+ Control.Comonad.Store.Class: lowerPeek :: (ComonadTrans t, ComonadStore s w) => s -> t w a -> a
+ Control.Comonad.Store.Class: lowerPos :: (ComonadTrans t, ComonadStore s w) => t w a -> s
+ Control.Comonad.Store.Class: peek :: ComonadStore s w => s -> w a -> a
+ Control.Comonad.Store.Class: peeks :: ComonadStore s w => (s -> s) -> w a -> a
+ Control.Comonad.Store.Class: pos :: ComonadStore s w => w a -> s
+ Control.Comonad.Store.Class: seek :: ComonadStore s w => s -> w a -> w a
+ Control.Comonad.Store.Class: seeks :: ComonadStore s w => (s -> s) -> w a -> 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: 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.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: 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.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: seek :: ComonadStore s w => s -> w a -> w a
+ Control.Comonad.Store.Strict: seeks :: ComonadStore s w => (s -> s) -> w a -> w a

Files

Control/Comonad/Store/Class.hs view
@@ -11,9 +11,8 @@ ---------------------------------------------------------------------------- module Control.Comonad.Store.Class    ( ComonadStore(..)-  , gets-  , experiment-  , lowerGet+  , lowerPos+  , lowerPeek   ) where  import Control.Comonad@@ -37,69 +36,77 @@ import Data.Semigroup  class Comonad w => ComonadStore s w | w -> s where-  get :: w a -> s-  put :: s -> w a -> w a-  modify :: (s -> s) -> w a -> w a-  modify f wa = put (f (get wa)) wa--gets :: ComonadStore s w => (s -> t) -> w a -> t-gets f wa = f (get wa)-{-# INLINE gets #-}+  pos :: w a -> s+  peek :: s -> w a -> a -experiment :: (ComonadStore s w, Functor f) => f (s -> s) -> w a -> f a-experiment ff wa = fmap (\f -> extract (modify f wa)) ff-{-# INLINE experiment #-}+  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-  get = Strict.get-  put = Strict.put-  modify = Strict.modify+  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-  get = Lazy.get-  put = Lazy.put-  modify = Lazy.modify+  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-  get = Memo.get-  put = Memo.put-  modify = Memo.modify+  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 -lowerGet :: (ComonadTrans t, ComonadStore s w) => t w a -> s-lowerGet = get . lower-{-# INLINE lowerGet #-}+lowerPos :: (ComonadTrans t, ComonadStore s w) => t w a -> s+lowerPos = pos . lower+{-# INLINE lowerPos #-} +lowerPeek :: (ComonadTrans t, ComonadStore s w) => s -> t w a -> a+lowerPeek s = peek s . lower+{-# INLINE lowerPeek #-}+ instance ComonadStore s w => ComonadStore s (Lazy.DiscontT k w) where-  get = lowerGet-  put s ~(Lazy.DiscontT f wa) = Lazy.DiscontT f (put s wa)+  pos = lowerPos+  peek = lowerPeek  instance ComonadStore s w => ComonadStore s (Memo.DiscontT k w) where-  get = lowerGet-  put s w = Memo.discontT f (put s wa)-    where (f, wa) = Memo.runDiscontT w+  pos = lowerPos+  peek = lowerPeek  instance ComonadStore s w => ComonadStore s (Strict.DiscontT k w) where-  get = lowerGet-  put s (Strict.DiscontT f wa) = Strict.DiscontT f (put s wa)+  pos = lowerPos+  peek = lowerPeek  instance ComonadStore s w => ComonadStore s (IdentityT w) where-  get = lowerGet-  put s = IdentityT . put s . runIdentityT+  pos = lowerPos+  peek = lowerPeek  instance ComonadStore s w => ComonadStore s (Lazy.EnvT e w) where-  get = lowerGet-  put s ~(Lazy.EnvT e wa) = Lazy.EnvT e (put s wa)+  pos = lowerPos+  peek = lowerPeek  instance ComonadStore s w => ComonadStore s (Strict.EnvT e w) where-  get = lowerGet-  put s (Strict.EnvT e wa) = Strict.EnvT e (put s wa)+  pos = lowerPos+  peek = lowerPeek  instance (ComonadStore s w, Semigroup m, Monoid m) => ComonadStore s (Simple.TracedT m w) where-  get = lowerGet-  put s (Simple.TracedT wma) = Simple.TracedT (put s wma)+  pos = lowerPos+  peek = lowerPeek  instance (ComonadStore s w, Monoid m) => ComonadStore s (Memo.TracedT m w) where-  get = lowerGet-  put s = Memo.tracedT . put s . Memo.runTracedT+  pos = lowerPos+  peek = lowerPeek
Control/Comonad/Store/Lazy.hs view
@@ -11,8 +11,6 @@ module Control.Comonad.Store.Lazy (    -- * ComonadStore class     ComonadStore(..)-  , gets-  , experiment   -- * The Store comonad   , Store   , store@@ -26,6 +24,6 @@   ) where  import Control.Comonad-import Control.Comonad.Store.Class (ComonadStore(..), gets, experiment)+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 view
@@ -11,8 +11,6 @@ module Control.Comonad.Store.Memo (    -- * ComonadStore class     ComonadStore(..)-  , gets-  , experiment   -- * The Store comonad   , Store   , store@@ -27,6 +25,6 @@   ) where  import Control.Comonad-import Control.Comonad.Store.Class (ComonadStore(..), gets, experiment)+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 view
@@ -11,8 +11,6 @@ module Control.Comonad.Store.Strict (    -- * ComonadStore class     ComonadStore(..)-  , gets-  , experiment   -- * The Store comonad   , Store   , store@@ -26,6 +24,6 @@   ) where  import Control.Comonad-import Control.Comonad.Store.Class (ComonadStore(..), gets, experiment)+import Control.Comonad.Store.Class (ComonadStore(..)) import Control.Comonad.Trans.Class import Control.Comonad.Trans.Store.Strict (Store, store, runStore, StoreT(..), runStoreT)
comonads-fd.cabal view
@@ -1,6 +1,6 @@ name:          comonads-fd category:      Control, Comonads-version:       1.4.0+version:       1.5.0 license:       BSD3 cabal-version: >= 1.6 license-file:  LICENSE@@ -23,7 +23,7 @@     transformers >= 0.2 && < 0.3,     semigroups >= 0.3.4 && < 0.4,     comonad >= 1.0 && < 1.1,-    comonad-transformers >= 1.4 && < 1.5+    comonad-transformers >= 1.5 && < 1.6    exposed-modules:     Control.Comonad.Discont