comonad 4.2 → 4.2.1
raw patch · 10 files changed
+78/−19 lines, 10 filesdep +transformers-compatPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies added: transformers-compat
API changes (from Hackage documentation)
- Control.Comonad.Trans.Identity: IdentityT :: m a -> IdentityT a
+ Control.Comonad.Trans.Identity: IdentityT :: f a -> IdentityT a
- Control.Comonad.Trans.Identity: newtype IdentityT (m :: * -> *) a :: (* -> *) -> * -> *
+ Control.Comonad.Trans.Identity: newtype IdentityT (f :: * -> *) a :: (* -> *) -> * -> *
- Control.Comonad.Trans.Identity: runIdentityT :: IdentityT a -> m a
+ Control.Comonad.Trans.Identity: runIdentityT :: IdentityT a -> f a
Files
- CHANGELOG.markdown +4/−0
- LICENSE +1/−1
- comonad.cabal +47/−9
- src/Control/Comonad.hs +9/−2
- src/Control/Comonad/Env.hs +1/−1
- src/Control/Comonad/Identity.hs +1/−1
- src/Control/Comonad/Store.hs +1/−1
- src/Control/Comonad/Traced.hs +1/−1
- src/Control/Comonad/Trans/Traced.hs +7/−2
- src/Data/Functor/Coproduct.hs +6/−1
CHANGELOG.markdown view
@@ -1,3 +1,7 @@+4.2.1+-----+* Added flags that supply unsupported build modes that can be convenient for sandbox users.+ 4.2 --- * `transformers 0.4` compatibility
LICENSE view
@@ -1,4 +1,4 @@-Copyright 2008-2013 Edward Kmett+Copyright 2008-2014 Edward Kmett Copyright 2004-2008 Dave Menendez All rights reserved.
comonad.cabal view
@@ -1,6 +1,6 @@ name: comonad category: Control, Comonads-version: 4.2+version: 4.2.1 license: BSD3 cabal-version: >= 1.10 license-file: LICENSE@@ -9,7 +9,7 @@ stability: provisional homepage: http://github.com/ekmett/comonad/ bug-reports: http://github.com/ekmett/comonad/issues-copyright: Copyright (C) 2008-2013 Edward A. Kmett,+copyright: Copyright (C) 2008-2014 Edward A. Kmett, Copyright (C) 2004-2008 Dave Menendez synopsis: Comonads description: Comonads@@ -30,6 +30,37 @@ default: True manual: True +flag containers+ description:+ You can disable the use of the `containers` package using `-f-containers`.+ .+ Disabing this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.+ default: True+ manual: True++flag contravariant+ description:+ You can disable the use of the `contravariant` package using `-f-contravariant`.+ .+ Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.+ .+ If disabled we will not supply instances of `Contravariant`+ .+ default: True+ manual: True++flag distributive+ description:+ You can disable the use of the `distributive` package using `-f-distributive`.+ .+ Disabling this is an unsupported configuration, but it may be useful for accelerating builds in sandboxes for expert users.+ .+ If disabled we will not supply instances of `Distributive`+ .+ default: True+ manual: True++ source-repository head type: git location: git://github.com/ekmett/comonad.git@@ -41,13 +72,20 @@ ghc-options: -Wall build-depends:- base >= 4 && < 5,- containers >= 0.3 && < 0.6,- contravariant >= 0.2.0.1 && < 1,- distributive >= 0.2.2 && < 1,- semigroups >= 0.8.3.1 && < 1,- tagged >= 0.1 && < 1,- transformers >= 0.2 && < 0.5+ base >= 4 && < 5,+ semigroups >= 0.8.3.1 && < 1,+ tagged >= 0.1 && < 1,+ transformers >= 0.2 && < 0.5,+ transformers-compat >= 0.3 && < 1++ if flag(containers)+ build-depends: containers >= 0.3 && < 0.6++ if flag(contravariant)+ build-depends: contravariant >= 0.2.0.1 && < 1 ++ if flag(distributive)+ build-depends: distributive >= 0.2.2 && < 1 exposed-modules: Control.Comonad
src/Control/Comonad.hs view
@@ -9,7 +9,7 @@ ----------------------------------------------------------------------------- -- | -- Module : Control.Comonad--- Copyright : (C) 2008-2012 Edward Kmett,+-- Copyright : (C) 2008-2014 Edward Kmett, -- (C) 2004 Dave Menendez -- License : BSD-style (see the file LICENSE) --@@ -56,11 +56,14 @@ import Data.List.NonEmpty hiding (map) import Data.Semigroup hiding (Product) import Data.Tagged-import Data.Tree import Prelude hiding (id, (.)) import Control.Monad.Fix import Data.Typeable +#ifdef MIN_VERSION_containers+import Data.Tree+#endif+ infixl 4 <@, @>, <@@>, <@>, $> infixl 1 =>> infixr 1 <<=, =<=, =>=@@ -169,10 +172,12 @@ extract = extract . runIdentityT {-# INLINE extract #-} +#ifdef MIN_VERSION_containers instance Comonad Tree where duplicate w@(Node _ as) = Node w (map duplicate as) extract (Node a _) = a {-# INLINE extract #-}+#endif instance Comonad NonEmpty where extend f w@ ~(_ :| aas) = f w :| case aas of@@ -240,10 +245,12 @@ instance ComonadApply w => ComonadApply (IdentityT w) where IdentityT wa <@> IdentityT wb = IdentityT (wa <@> wb) +#ifdef MIN_VERSION_containers instance ComonadApply Tree where (<@>) = (<*>) (<@ ) = (<* ) ( @>) = ( *>)+#endif -- | A suitable default definition for 'fmap' for a 'Comonad'. -- Promotes a function to a comonad.
src/Control/Comonad/Env.hs view
@@ -5,7 +5,7 @@ ----------------------------------------------------------------------------- -- | -- Module : Control.Comonad.Env--- Copyright : (C) 2008-2011 Edward Kmett+-- Copyright : (C) 2008-2014 Edward Kmett -- License : BSD-style (see the file LICENSE) -- -- Maintainer : Edward Kmett <ekmett@gmail.com>
src/Control/Comonad/Identity.hs view
@@ -5,7 +5,7 @@ ----------------------------------------------------------------------------- -- | -- Module : Control.Comonad.Identity--- Copyright : (C) 2008-2012 Edward Kmett+-- Copyright : (C) 2008-2014 Edward Kmett -- License : BSD-style (see the file LICENSE) -- -- Maintainer : Edward Kmett <ekmett@gmail.com>
src/Control/Comonad/Store.hs view
@@ -5,7 +5,7 @@ ----------------------------------------------------------------------------- -- | -- Module : Control.Comonad.Store--- Copyright : (C) 2008-2011 Edward Kmett+-- Copyright : (C) 2008-2014 Edward Kmett -- License : BSD-style (see the file LICENSE) -- -- Maintainer : Edward Kmett <ekmett@gmail.com>
src/Control/Comonad/Traced.hs view
@@ -5,7 +5,7 @@ ----------------------------------------------------------------------------- -- | -- Module : Control.Comonad.Traced--- Copyright : (C) 2008-2011 Edward Kmett+-- Copyright : (C) 2008-2014 Edward Kmett -- License : BSD-style (see the file LICENSE) -- -- Maintainer : Edward Kmett <ekmett@gmail.com>
src/Control/Comonad/Trans/Traced.hs view
@@ -8,7 +8,7 @@ ----------------------------------------------------------------------------- -- | -- Module : Control.Comonad.Trans.Traced--- Copyright : (C) 2008-2013 Edward Kmett+-- Copyright : (C) 2008-2014 Edward Kmett -- License : BSD-style (see the file LICENSE) -- -- Maintainer : Edward Kmett <ekmett@gmail.com>@@ -45,11 +45,14 @@ import Control.Comonad import Control.Comonad.Hoist.Class import Control.Comonad.Trans.Class-import Data.Distributive import Data.Functor.Identity import Data.Semigroup import Data.Typeable +#ifdef MIN_VERSION_distributive+import Data.Distributive+#endif+ type Traced m = TracedT m Identity traced :: (m -> a) -> Traced m a@@ -80,8 +83,10 @@ instance Monoid m => ComonadHoist (TracedT m) where cohoist l = TracedT . l . runTracedT +#ifdef MIN_VERSION_distributive instance Distributive w => Distributive (TracedT m w) where distribute = TracedT . fmap (\tma m -> fmap ($ m) tma) . collect runTracedT+#endif trace :: Comonad w => m -> TracedT m w a -> a trace m (TracedT wf) = extract wf m
src/Data/Functor/Coproduct.hs view
@@ -20,10 +20,13 @@ ) where import Control.Comonad-import Data.Functor.Contravariant import Data.Foldable import Data.Traversable +#ifdef MIN_VERSION_contravariant+import Data.Functor.Contravariant+#endif+ newtype Coproduct f g a = Coproduct { getCoproduct :: Either (f a) (g a) } deriving (Eq, Ord, Read, Show) @@ -53,5 +56,7 @@ (Right . extend (f . Coproduct . Right)) extract = coproduct extract extract +#ifdef MIN_VERSION_contravariant instance (Contravariant f, Contravariant g) => Contravariant (Coproduct f g) where contramap f = Coproduct . coproduct (Left . contramap f) (Right . contramap f)+#endif