packages feed

comonads-fd 1.0.0 → 1.3.0

raw patch · 12 files changed

+327/−23 lines, 12 filesdep ~comonad-transformersPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: comonad-transformers

API changes (from Hackage documentation)

+ Control.Comonad.Discont.Class: callCV :: ComonadDiscont s w => w (w (w a -> a) -> b) -> b
+ Control.Comonad.Discont.Class: class Comonad w => ComonadDiscont s w | w -> s
+ Control.Comonad.Discont.Class: instance ComonadDiscont s w => ComonadDiscont s (DiscontT k w)
+ Control.Comonad.Discont.Lazy: DiscontT :: (w s -> a) -> w s -> DiscontT s a
+ Control.Comonad.Discont.Lazy: callCV :: ComonadDiscont s w => w (w (w a -> a) -> b) -> b
+ Control.Comonad.Discont.Lazy: class Comonad w => ComonadDiscont s w | w -> s
+ Control.Comonad.Discont.Lazy: data DiscontT s w :: (* -> *) a :: * -> (* -> *) -> * -> *
+ Control.Comonad.Discont.Lazy: discont :: (s -> a) -> s -> Discont s a
+ Control.Comonad.Discont.Lazy: label :: Comonad w => DiscontT s w a -> s
+ Control.Comonad.Discont.Lazy: runDiscont :: Discont s a -> (s -> a, s)
+ Control.Comonad.Discont.Lazy: runDiscontT :: DiscontT s w a -> (w s -> a, w s)
+ Control.Comonad.Discont.Lazy: type Discont s = DiscontT s Identity
+ Control.Comonad.Discont.Memo: callCV :: ComonadDiscont s w => w (w (w a -> a) -> b) -> b
+ Control.Comonad.Discont.Memo: class Comonad w => ComonadDiscont s w | w -> s
+ Control.Comonad.Discont.Memo: data DiscontT s w :: (* -> *) a :: * -> (* -> *) -> * -> *
+ Control.Comonad.Discont.Memo: discont :: (s -> a) -> s -> Discont s a
+ Control.Comonad.Discont.Memo: discontT :: (w s -> a) -> w s -> DiscontT s w a
+ Control.Comonad.Discont.Memo: label :: Comonad w => DiscontT s w a -> s
+ Control.Comonad.Discont.Memo: runDiscont :: Discont s a -> (s -> a, s)
+ Control.Comonad.Discont.Memo: runDiscontT :: DiscontT s w a -> (w s -> a, w s)
+ Control.Comonad.Discont.Memo: type Discont s = DiscontT s Identity
+ Control.Comonad.Discont.Strict: DiscontT :: (w s -> a) -> w s -> DiscontT s a
+ Control.Comonad.Discont.Strict: callCV :: ComonadDiscont s w => w (w (w a -> a) -> b) -> b
+ Control.Comonad.Discont.Strict: class Comonad w => ComonadDiscont s w | w -> s
+ Control.Comonad.Discont.Strict: data DiscontT s w :: (* -> *) a :: * -> (* -> *) -> * -> *
+ Control.Comonad.Discont.Strict: discont :: (s -> a) -> s -> Discont s a
+ Control.Comonad.Discont.Strict: label :: Comonad w => DiscontT s w a -> s
+ Control.Comonad.Discont.Strict: runDiscont :: Discont s a -> (s -> a, s)
+ Control.Comonad.Discont.Strict: runDiscontT :: DiscontT s w a -> (w s -> a, w s)
+ Control.Comonad.Discont.Strict: type Discont s = DiscontT s Identity
+ Control.Comonad.Env.Class: instance (ComonadEnv e w, Monoid m) => ComonadEnv e (TracedT m w)
+ Control.Comonad.Store.Class: instance (ComonadStore s w, Monoid m) => ComonadStore s (TracedT m w)
+ Control.Comonad.Store.Memo: class Comonad w => ComonadStore s w | w -> s
+ Control.Comonad.Store.Memo: data StoreT s 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 -> a
+ Control.Comonad.Store.Memo: put :: ComonadStore s w => s -> w a -> a
+ 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: 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.Traced.Class: instance (Comonad w, Monoid m) => ComonadTraced m (TracedT m w)
+ Control.Comonad.Traced.Class: instance (Functor s, ComonadTraced m w) => ComonadTraced m (StreamT s 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.Traced: runTraced :: Monoid m => Traced m a -> m -> a
+ Control.Comonad.Traced: runTraced :: Traced m a -> m -> a

Files

+ Control/Comonad/Discont.hs view
@@ -0,0 +1,15 @@+-----------------------------------------------------------------------------+-- |+-- Module      :  Control.Comonad.Discont+-- 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.Discont ( +  module Control.Comonad.Discont.Lazy+  ) where++import Control.Comonad.Discont.Lazy
+ Control/Comonad/Discont/Class.hs view
@@ -0,0 +1,65 @@+{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, UndecidableInstances #-}+-----------------------------------------------------------------------------+-- |+-- Module      :  Control.Comonad.Discont.Class+-- 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.Discont.Class +  ( ComonadDiscont(..)+  ) where++import Control.Comonad+import qualified Control.Comonad.Trans.Discont.Strict as Strict+import qualified Control.Comonad.Trans.Discont.Lazy as Lazy+import qualified Control.Comonad.Trans.Discont.Memo as Memo+{-+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.Env.Lazy as Lazy+import qualified Control.Comonad.Trans.Store.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 Control.Comonad.Trans.Stream+import Control.Comonad.Trans.Identity +import Data.Monoid+import Data.Semigroup+-}++class Comonad w => ComonadDiscont s w | w -> s where+  callCV :: w (w (w a -> a) -> b) -> b++instance ComonadDiscont s w => ComonadDiscont s (Lazy.DiscontT k w) where+  callCV = Lazy.callCV++instance ComonadDiscont s w => ComonadDiscont s (Memo.DiscontT k w) where+  callCV = Memo.callCV++instance ComonadDiscont s w => ComonadDiscont s (Strict.DiscontT k w) where+  callCV = Strict.callCV++{-+instance Comonad w => ComonadDiscont s (Strict.StoreT s w) where++instance Comonad w => ComonadDiscont s (Lazy.StoreT s w) where++instance Comonad w => ComonadDiscont s (Memo.StoreT s w) where++instance ComonadDiscont s w => ComonadDiscont s (IdentityT w) where++instance ComonadDiscont s w => ComonadDiscont s (Lazy.EnvT e w) where++instance ComonadDiscont s w => ComonadDiscont s (Strict.EnvT e w) where++instance (ComonadDiscont s w, Semigroup m, Monoid m) => ComonadDiscont s (Simple.TracedT m w) where++instance (ComonadDiscont s w, Monoid m) => ComonadDiscont s (Memo.TracedT m w) where++instance (ComonadDiscont s w, Functor f) => ComonadDiscont s (StreamT f w) where+-}
+ Control/Comonad/Discont/Lazy.hs view
@@ -0,0 +1,30 @@+-----------------------------------------------------------------------------+-- |+-- Module      :  Control.Comonad.Discont.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.Discont.Lazy ( +  -- * ComonadDiscont class+    ComonadDiscont(..)+  , label+  -- * The Discont comonad+  , Discont+  , discont+  , runDiscont+  -- * The DiscontT comonad transformer+  , DiscontT(..)+  , runDiscontT+  -- * Re-exported modules+  , module Control.Comonad+  , module Control.Comonad.Trans.Class+  ) where++import Control.Comonad+import Control.Comonad.Discont.Class (ComonadDiscont(..))+import Control.Comonad.Trans.Class+import Control.Comonad.Trans.Discont.Lazy (Discont, discont, runDiscont, DiscontT(..), runDiscontT, label)
+ Control/Comonad/Discont/Memo.hs view
@@ -0,0 +1,31 @@+----------------------------------------------------------------------------+-- |+-- Module      :  Control.Comonad.Discont.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.Discont.Memo ( +  -- * ComonadDiscont class+    ComonadDiscont(..)+  , label+  -- * The Discont comonad+  , Discont+  , discont+  , runDiscont+  -- * The DiscontT comonad transformer+  , DiscontT+  , discontT+  , runDiscontT+  -- * Re-exported modules+  , module Control.Comonad+  , module Control.Comonad.Trans.Class+  ) where++import Control.Comonad+import Control.Comonad.Discont.Class (ComonadDiscont(..))+import Control.Comonad.Trans.Class+import Control.Comonad.Trans.Discont.Memo (Discont, discont, runDiscont, DiscontT, discontT, runDiscontT, label)
+ Control/Comonad/Discont/Strict.hs view
@@ -0,0 +1,30 @@+-----------------------------------------------------------------------------+-- |+-- Module      :  Control.Comonad.Discont.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.Discont.Strict ( +  -- * ComonadDiscont class+    ComonadDiscont(..)+  , label+  -- * The Discont comonad+  , Discont+  , discont+  , runDiscont+  -- * The DiscontT comonad transformer+  , DiscontT(..)+  , runDiscontT+  -- * Re-exported modules+  , module Control.Comonad+  , module Control.Comonad.Trans.Class+  ) where++import Control.Comonad+import Control.Comonad.Discont.Class (ComonadDiscont(..))+import Control.Comonad.Trans.Class+import Control.Comonad.Trans.Discont.Strict (Discont, discont, runDiscont, DiscontT(..), runDiscontT, label)
Control/Comonad/Env/Class.hs view
@@ -22,7 +22,10 @@ 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 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.Stream import Control.Comonad.Trans.Identity  import Data.Monoid@@ -66,10 +69,19 @@ 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+  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+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   ask = lowerAsk  instance (ComonadEnv e w, Functor f) => ComonadEnv e (StreamT f w) where
Control/Comonad/Store/Class.hs view
@@ -17,19 +17,23 @@  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.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 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.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  class Comonad w => ComonadStore s w | w -> s where   get :: w a -> s@@ -56,6 +60,11 @@   put = Lazy.put   modify = Lazy.modify +instance Comonad w => ComonadStore s (Memo.StoreT s w) where+  get = Memo.get+  put = Memo.put+  modify = Memo.modify+ -- All of these require UndecidableInstances because they do not satisfy the coverage condition  lowerGet :: (ComonadTrans t, ComonadStore s w) => t w a -> s@@ -75,6 +84,11 @@   put = lowerPut   modify = lowerModify +instance ComonadStore s w => ComonadStore s (Memo.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@@ -95,7 +109,12 @@   put = lowerPut   modify = lowerModify -instance (ComonadStore s w, Semigroup m, Monoid m) => ComonadStore s (TracedT m w) where+instance (ComonadStore s w, Semigroup m, Monoid m) => ComonadStore s (Simple.TracedT m w) where+  get = lowerGet+  put = lowerPut+  modify = lowerModify++instance (ComonadStore s w, Monoid m) => ComonadStore s (Memo.TracedT m w) where   get = lowerGet   put = lowerPut   modify = lowerModify
+ Control/Comonad/Store/Memo.hs view
@@ -0,0 +1,32 @@+-----------------------------------------------------------------------------+-- |+-- 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(..)+  , gets+  , experiment+  -- * 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(..), gets, experiment)+import Control.Comonad.Trans.Class+import Control.Comonad.Trans.Store.Memo (Store, store, runStore, StoreT, storeT, runStoreT)
+ Control/Comonad/Stream.hs view
@@ -0,0 +1,15 @@+-----------------------------------------------------------------------------+-- |+-- Module      :  Control.Comonad.Stream+-- 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.Stream ( +    module Control.Comonad.Trans.Stream+  ) where++import Control.Comonad.Trans.Stream
Control/Comonad/Traced/Class.hs view
@@ -16,14 +16,17 @@  import Control.Comonad import Control.Comonad.Trans.Class-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 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.Stream import Control.Comonad.Trans.Identity  import Data.Monoid import Data.Semigroup@@ -35,9 +38,12 @@ traces f wa = trace (f (extract wa)) wa {-# INLINE traces #-} -instance (Comonad w, Semigroup m, Monoid m) => ComonadTraced m (TracedT m w) where-  trace = TracedT.trace+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+ lowerTrace :: (ComonadTrans t, ComonadTraced m w) => m -> t w a -> a lowerTrace m = trace m . lower {-# INLINE lowerTrace #-}@@ -63,4 +69,13 @@   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+  trace = lowerTrace++instance ComonadTraced m w => ComonadTraced m (Memo.StoreT s w) where+  trace = lowerTrace++instance (Functor s, ComonadTraced m w) => ComonadTraced m (StreamT s w) where   trace = lowerTrace
+ Control/Comonad/Traced/Memo.hs view
@@ -0,0 +1,31 @@+-----------------------------------------------------------------------------+-- |+-- 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:       1.0.0+version:       1.3.0 license:       BSD3 cabal-version: >= 1.6 license-file:  LICENSE@@ -9,8 +9,8 @@ stability:     experimental homepage:      http://github.com/ekmett/comonads-fd/ copyright:     Copyright (C) 2008-2011 Edward A. Kmett-synopsis:      Comonad transformers using functional dependencies.-description:   Comonad transformers using functional dependencies.+synopsis:      Comonad transformers using functional dependencies+description:   Comonad transformers using functional dependencies build-type:    Simple  source-repository head@@ -23,9 +23,14 @@     transformers >= 0.2 && < 0.3,     semigroups >= 0.3.4 && < 0.4,     comonad >= 1.0 && < 1.1,-    comonad-transformers >= 1.0 && < 1.1+    comonad-transformers >= 1.2.1 && < 1.3    exposed-modules:+    Control.Comonad.Discont+    Control.Comonad.Discont.Class+    Control.Comonad.Discont.Lazy+    Control.Comonad.Discont.Memo+    Control.Comonad.Discont.Strict     Control.Comonad.Env     Control.Comonad.Env.Class     Control.Comonad.Env.Strict@@ -35,7 +40,11 @@     Control.Comonad.Store.Class     Control.Comonad.Store.Strict     Control.Comonad.Store.Lazy+    Control.Comonad.Store.Memo+    Control.Comonad.Stream     Control.Comonad.Traced     Control.Comonad.Traced.Class+    Control.Comonad.Traced.Memo    ghc-options:      -Wall +