packages feed

kan-extensions 2.0.2 → 2.1

raw patch · 4 files changed

+30/−11 lines, 4 filesdep +speculationdep ~adjunctionsdep ~representable-functorsPVP ok

version bump matches the API change (PVP)

Dependencies added: speculation

Dependency ranges changed: adjunctions, representable-functors

API changes (from Hackage documentation)

+ Control.Monad.Co: instance Comonad w => MonadSpec (CoT w m)
+ Control.Monad.Codensity: instance MonadSpec (Codensity m)
+ Control.Monad.Free.Church: instance MonadSpec (F f)

Files

Control/Monad/Co.hs view
@@ -18,8 +18,8 @@ -- http://comonad.com/reader/2011/monads-from-comonads/ -- -----------------------------------------------------------------------------module Control.Monad.Co -  ( +module Control.Monad.Co+  (   -- * Monads from Comonads     Co, co, runCo   -- * Monad Transformers from Comonads@@ -44,7 +44,13 @@ import Control.Monad.Writer.Class as Writer import Control.Monad.Identity import Data.Functor.Bind+import Control.Concurrent.Speculation+import Control.Concurrent.Speculation.Class +instance Comonad w => MonadSpec (CoT w m) where+  specByM f g a = CoT (\k -> specBy f g (extract k) a)+  specByM' f g a = CoT (\k -> specBy' f g (extract k) a)+ type Co w = CoT w Identity  co :: Functor w => (forall r. w (a -> r) -> r) -> Co w a@@ -67,7 +73,7 @@ instance Comonad w => Applicative (CoT w m) where   pure a = CoT (`extract` a)   mf <*> ma = mf >>= \f -> fmap f ma-  + instance Comonad w => Monad (CoT w m) where   return a = CoT (`extract` a)   CoT k >>= f = CoT (k . extend (\wa a -> runCoT (f a) wa))@@ -82,10 +88,10 @@ liftCoT0 f = CoT (extract <*> f)  lowerCoT0 :: (Functor w, Monad m) => CoT w m s -> w a -> m s-lowerCoT0 m = runCoT m . (return <$) +lowerCoT0 m = runCoT m . (return <$)  lowerCo0 :: Functor w => Co w s -> w a -> s-lowerCo0 m = runIdentity . runCoT m . (return <$) +lowerCo0 m = runIdentity . runCoT m . (return <$)  liftCoT1 :: (forall a. w a -> a) -> CoT w m () liftCoT1 f = CoT (`f` ())@@ -124,7 +130,7 @@  instance (Comonad w, MonadWriter e m) => MonadWriter e (CoT w m) where   tell = lift . tell-  pass m = CoT (pass . runCoT m . fmap aug) where +  pass m = CoT (pass . runCoT m . fmap aug) where     aug f (a,e) = liftM (\r -> (r,e)) (f a)   listen = error "Control.Monad.Co.listen: TODO" 
Control/Monad/Codensity.hs view
@@ -28,8 +28,14 @@ import Data.Functor.Apply import Control.Monad.Trans.Class import Control.Monad.IO.Class+import Control.Concurrent.Speculation+import Control.Concurrent.Speculation.Class  newtype Codensity m a = Codensity { runCodensity :: forall b. (a -> m b) -> m b }++instance MonadSpec (Codensity m) where+  specByM f g a = Codensity $ \k -> specBy f g k a+  specByM' f g a = Codensity $ \k -> specBy' f g k a  instance Functor (Codensity k) where   fmap f (Codensity m) = Codensity (\k -> m (k . f))
Control/Monad/Free/Church.hs view
@@ -31,6 +31,12 @@ import Control.Monad.Cont.Class import Control.Monad.Trans.Class import Control.Monad.State.Class+import Control.Concurrent.Speculation+import Control.Concurrent.Speculation.Class++instance MonadSpec (F f) where+  specByM f g a = F (\k _ -> specBy f g k a)+  specByM' f g a = F (\k _ -> specBy' f g k a)  newtype F f a = F { runF :: forall r. (a -> r) -> (f r -> r) -> r } 
kan-extensions.cabal view
@@ -1,6 +1,6 @@ name:          kan-extensions category:      Data Structures, Monads, Comonads, Functors-version:       2.0.2+version:       2.1 license:       BSD3 cabal-version: >= 1.6 license-file:  LICENSE@@ -22,13 +22,13 @@     CPP     MultiParamTypeClasses     GADTs-    Rank2Types, +    Rank2Types,     FlexibleInstances     FlexibleContexts     UndecidableInstances     TypeFamilies -  build-depends: +  build-depends:     array                  >= 0.3.0.2 && < 0.4,     base                   >= 4       && < 5,     comonad                >= 1.1.1.1 && < 1.2,@@ -42,8 +42,9 @@     comonads-fd            >= 2.0     && < 2.1,     keys                   >= 2.1     && < 2.2,     free                   >= 2.0     && < 2.1,-    adjunctions            >= 2.0     && < 2.1,-    representable-functors >= 2.0     && < 2.1+    adjunctions            >= 2.0.4   && < 2.1,+    representable-functors >= 2.1     && < 2.2,+    speculation            >= 1.4     && < 1.5    exposed-modules:     Control.Comonad.Density