packages feed

monoid-extras 0.3.3.5 → 0.4.0.0

raw patch · 12 files changed

+98/−45 lines, 12 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Data.Monoid.Coproduct: instance Typeable (:+:)
+ Data.Monoid.Cut: instance Data m => Data (Cut m)
+ Data.Monoid.Cut: instance Foldable Cut
+ Data.Monoid.Cut: instance Functor Cut
+ Data.Monoid.Cut: instance Read m => Read (Cut m)
+ Data.Monoid.Cut: instance Traversable Cut
+ Data.Monoid.Cut: instance Typeable Cut
+ Data.Monoid.Deletable: instance Data m => Data (Deletable m)
+ Data.Monoid.Deletable: instance Foldable Deletable
+ Data.Monoid.Deletable: instance Read m => Read (Deletable m)
+ Data.Monoid.Deletable: instance Traversable Deletable
+ Data.Monoid.Deletable: instance Typeable Deletable
+ Data.Monoid.Inf: instance (Data p, Data a) => Data (Inf p a)
+ Data.Monoid.Inf: instance Typeable Inf
+ Data.Monoid.Recommend: instance Data a => Data (Recommend a)
+ Data.Monoid.Recommend: instance Eq a => Eq (Recommend a)
+ Data.Monoid.Recommend: instance Foldable Recommend
+ Data.Monoid.Recommend: instance Functor Recommend
+ Data.Monoid.Recommend: instance Ord a => Ord (Recommend a)
+ Data.Monoid.Recommend: instance Read a => Read (Recommend a)
+ Data.Monoid.Recommend: instance Traversable Recommend
+ Data.Monoid.Recommend: instance Typeable Recommend
+ Data.Monoid.Split: instance Data m => Data (Split m)
+ Data.Monoid.Split: instance Eq m => Eq (Split m)
+ Data.Monoid.Split: instance Foldable Split
+ Data.Monoid.Split: instance Functor Split
+ Data.Monoid.Split: instance Read m => Read (Split m)
+ Data.Monoid.Split: instance Traversable Split
+ Data.Monoid.Split: instance Typeable Split

Files

CHANGES view
@@ -1,4 +1,10 @@-* 0.3.3.5 03 Dec 2014+* 0.4: 19 April 2015++  - add derived instances where possible:+    Typeable, Data, Read, Eq, Ord, Functor, Foldable, Traversable+  - allow base-4.8++* 0.3.3.5: 03 Dec 2014    - allow semigroups-0.15 
LICENSE view
@@ -1,6 +1,7 @@-Copyright (c) 2012-2013, monoid-extras team:+Copyright (c) 2012-2015, monoid-extras team:    Daniel Bergey <bergey@alum.mit.edu>+  Christopher Chalmers <c.chalmers@me.com>   Nathan van Doorn <nvd1234@gmail.com>   Daniil Frumin <difrumin@gmail.com>   Hans Höglund <hans@hanshoglund.se>
monoid-extras.cabal view
@@ -1,5 +1,5 @@ name:                monoid-extras-version:             0.3.3.5+version:             0.4.0.0 synopsis:            Various extra monoid-related definitions and utilities description:         Various extra monoid-related definitions and utilities,                      such as monoid actions, monoid coproducts, \"deletable\"@@ -13,6 +13,7 @@ category:            Data build-type:          Simple cabal-version:       >=1.10+tested-with:         GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.1  source-repository head   type: git@@ -31,7 +32,7 @@                      Data.Monoid.Split,                      Data.Monoid.WithSemigroup -  build-depends:     base >= 4.3 && < 4.8,+  build-depends:     base >= 4.3 && < 4.9,                      groups < 0.5,                      semigroups >= 0.8 && < 0.17,                      semigroupoids >= 4.0 && < 5
src/Data/Monoid/Action.hs view
@@ -28,13 +28,13 @@ -- --   * @act mempty = id@ -----   * @act (m1 ``mappend`` m2) = act m1 . act m2@+--   * @act (m1 \`mappend\` m2) = act m1 . act m2@ -- --   Semigroup instances are required to satisfy the second law but with --   ('<>') instead of 'mappend'.  Additionally, if the type @s@ has --   any algebraic structure, @act m@ should be a homomorphism.  For --   example, if @s@ is also a monoid we should have @act m mempty =---   mempty@ and @act m (s1 ``mappend`` s2) = (act m s1) ``mappend``+--   mempty@ and @act m (s1 \`mappend\` s2) = (act m s1) \`mappend\` --   (act m s2)@. -- --   By default, @act = const id@, so for a type @M@ which should have
src/Data/Monoid/Coproduct.hs view
@@ -1,12 +1,12 @@-{-# LANGUAGE TypeOperators-           , FlexibleInstances-           , MultiParamTypeClasses-  #-}+{-# LANGUAGE DeriveDataTypeable    #-}+{-# LANGUAGE FlexibleInstances     #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE TypeOperators         #-}  ----------------------------------------------------------------------------- -- | -- Module      :  Data.Monoid.Coproduct--- Copyright   :  (c) 2011 diagrams-core team (see LICENSE)+-- Copyright   :  (c) 2011-2015 diagrams-core team (see LICENSE) -- License     :  BSD-style (see LICENSE) -- Maintainer  :  diagrams-discuss@googlegroups.com --@@ -23,8 +23,9 @@         ) where -import Data.Either (lefts, rights)+import Data.Either        (lefts, rights) import Data.Semigroup+import Data.Typeable  import Data.Monoid.Action @@ -34,7 +35,7 @@ --   concatenation, with appropriate combining of adjacent elements --   when possible. newtype m :+: n = MCo { unMCo :: [Either m n] }-                  deriving Show+  deriving (Typeable, Show)  -- For efficiency and simplicity, we implement it just as [Either m -- n]: of course, this does not preserve the invariant of strictly
src/Data/Monoid/Cut.hs view
@@ -1,8 +1,12 @@-+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveFoldable     #-}+{-# LANGUAGE DeriveFunctor      #-}+{-# LANGUAGE DeriveTraversable  #-}+{-# OPTIONS_GHC -fno-warn-unused-imports       #-} ----------------------------------------------------------------------------- -- | -- Module      :  Data.Monoid.Cut--- Copyright   :  (c) 2012 diagrams-core team (see LICENSE)+-- Copyright   :  (c) 2012-2015 diagrams-core team (see LICENSE) -- License     :  BSD-style (see LICENSE) -- Maintainer  :  diagrams-discuss@googlegroups.com --@@ -18,7 +22,10 @@         ) where +import Data.Data import Data.Semigroup+import Data.Foldable+import Data.Traversable  infix 5 :||: @@ -38,7 +45,7 @@ --   the outermost splits and throws away everything in between. data Cut m = Uncut m            | m :||: m-  deriving (Show)+  deriving (Data, Typeable, Show, Read, Functor, Foldable, Traversable)  -- | If @m@ is a @Semigroup@, then @Cut m@ is a semigroup which --   contains @m@ as a sub-semigroup, but also contains elements of
src/Data/Monoid/Deletable.hs view
@@ -1,10 +1,12 @@-{-# LANGUAGE DeriveFunctor-  #-}-+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveFoldable     #-}+{-# LANGUAGE DeriveFunctor      #-}+{-# LANGUAGE DeriveTraversable  #-}+{-# OPTIONS_GHC -fno-warn-unused-imports       #-} ----------------------------------------------------------------------------- -- | -- Module      :  Data.Monoid.Deletable--- Copyright   :  (c) 2011 diagrams-core team (see LICENSE)+-- Copyright   :  (c) 2011-2015 diagrams-core team (see LICENSE) -- License     :  BSD-style (see LICENSE) -- Maintainer  :  diagrams-discuss@googlegroups.com --@@ -22,6 +24,9 @@         ) where +import Data.Data+import Data.Foldable+import Data.Traversable import Data.Semigroup  -- | If @m@ is a 'Monoid', then @Deletable m@ (intuitively speaking)@@ -52,7 +57,7 @@ --   * The remaining case is symmetric with the second.  data Deletable m = Deletable Int m Int-  deriving (Functor, Show)+  deriving (Data, Typeable, Show, Read, Functor, Foldable, Traversable)  -- | Project the wrapped value out of a `Deletable` value. unDelete :: Deletable m -> m
src/Data/Monoid/Endomorphism.hs view
@@ -1,10 +1,10 @@-{-# LANGUAGE StandaloneDeriving #-}-{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleContexts     #-}+{-# LANGUAGE StandaloneDeriving   #-} {-# LANGUAGE UndecidableInstances #-} ----------------------------------------------------------------------------- -- | -- Module      :  Data.Monoid.Endomorphism--- Copyright   :  (c) 2013 diagrams-core team (see LICENSE)+-- Copyright   :  (c) 2013-2015 diagrams-core team (see LICENSE) -- License     :  BSD-style (see LICENSE) -- Maintainer  :  diagrams-discuss@googlegroups.com --@@ -30,7 +30,7 @@ --   and the identity morphism as the identity element. newtype Endomorphism k a = Endomorphism {getEndomorphism :: k a a} -deriving instance Show (k a a) =>  Show (Endomorphism k a)+deriving instance Show (k a a) => Show (Endomorphism k a)  instance Semigroupoid k => Semigroup (Endomorphism k a) where   Endomorphism a <> Endomorphism b = Endomorphism (a `o` b)
src/Data/Monoid/Inf.hs view
@@ -1,16 +1,19 @@-{-# LANGUAGE DeriveFoldable    #-}-{-# LANGUAGE DeriveFunctor     #-}-{-# LANGUAGE DeriveTraversable #-}-{-# LANGUAGE EmptyDataDecls    #-}-{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveFoldable     #-}+{-# LANGUAGE DeriveFunctor      #-}+{-# LANGUAGE DeriveTraversable  #-}+{-# LANGUAGE EmptyDataDecls     #-}+{-# LANGUAGE FlexibleInstances  #-}+{-# OPTIONS_GHC -fno-warn-unused-imports       #-}+ ----------------------------------------------------------------------------- -- | -- Module      :  Data.Monoid.Inf--- Copyright   :  (c) 2012 diagrams-core team (see LICENSE)+-- Copyright   :  (c) 2012-2015 diagrams-core team (see LICENSE) -- License     :  BSD-style (see LICENSE) -- Maintainer  :  diagrams-discuss@googlegroups.com ----- Make semigroup under 'min' or 'max' into monoids by adjoining an+-- Make semigroups under 'min' or 'max' into monoids by adjoining an -- element corresponding to infinity (positive or negative, -- respectively). These types are similar to @Option (Min a)@ and -- @Option (Max a)@ respectively, except that the 'Ord' instance@@ -28,6 +31,7 @@        , posFinite, negFinite        ) where +import           Data.Data import           Data.Semigroup import           Prelude          hiding (maximum, minimum) import qualified Prelude          as P@@ -39,7 +43,8 @@ data Neg  data Inf p a = Infinity | Finite a-  deriving (Eq, Show, Read, Functor, Foldable, Traversable)+  deriving (Data, Typeable, Show, Read, Eq, Functor, Foldable,+            Traversable)  type PosInf a = Inf Pos a type NegInf a = Inf Neg a
src/Data/Monoid/MList.hs view
@@ -1,12 +1,15 @@+{-# LANGUAGE CPP                        #-} {-# LANGUAGE FlexibleContexts           #-} {-# LANGUAGE FlexibleInstances          #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses      #-}-{-# LANGUAGE OverlappingInstances       #-} {-# LANGUAGE TypeFamilies               #-} {-# LANGUAGE TypeOperators              #-} {-# LANGUAGE TypeSynonymInstances       #-} {-# LANGUAGE UndecidableInstances       #-}+#if __GLASGOW_HASKELL__ < 710+{-# LANGUAGE OverlappingInstances       #-}+#endif  {-# OPTIONS_GHC -fno-warn-orphans #-} @@ -91,7 +94,11 @@   -- | Alter the value of type @a@ by applying the given function to it.   alt  :: (Option a -> Option a) -> l -> l +#if __GLASGOW_HASKELL__ >= 710+instance {-# OVERLAPPING #-} MList t => (:>:) (a ::: t) a where+#else instance MList t => (:>:) (a ::: t) a where+#endif   inj a = (Option (Just a), empty)   get   = fst   alt   = first
src/Data/Monoid/Recommend.hs view
@@ -1,7 +1,12 @@+{-# LANGUAGE CPP                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveFoldable     #-}+{-# LANGUAGE DeriveFunctor      #-}+{-# LANGUAGE DeriveTraversable  #-} ----------------------------------------------------------------------------- -- | -- Module      :  Data.Monoid.Recommend--- Copyright   :  (c) 2012 diagrams-core team (see LICENSE)+-- Copyright   :  (c) 2012-2015 diagrams-core team (see LICENSE) -- License     :  BSD-style (see LICENSE) -- Maintainer  :  diagrams-discuss@googlegroups.com --@@ -14,11 +19,18 @@ -----------------------------------------------------------------------------  module Data.Monoid.Recommend-       ( Recommend(..), getRecommend+       ( Recommend(..)+       , getRecommend        ) where -import Data.Semigroup+#if __GLASGOW_HASKELL__ < 710+import           Data.Foldable+import           Data.Traversable+#endif +import           Data.Data+import           Data.Semigroup+ -- | A value of type @Recommend a@ consists of a value of type @a@ --   wrapped up in one of two constructors.  The @Recommend@ --   constructor indicates a \"non-committal recommendation\"---that@@ -28,7 +40,7 @@ --   overriding any @Recommend@ed values. data Recommend a = Recommend a                  | Commit a-                   deriving Show+  deriving (Show, Read, Functor, Eq, Ord, Typeable, Data, Foldable, Traversable)  -- | Extract the value of type @a@ wrapped in @Recommend a@. getRecommend :: Recommend a -> a
src/Data/Monoid/Split.hs view
@@ -1,11 +1,14 @@-{-# LANGUAGE FlexibleInstances-           , MultiParamTypeClasses-  #-}-+{-# LANGUAGE DeriveDataTypeable    #-}+{-# LANGUAGE DeriveFoldable        #-}+{-# LANGUAGE DeriveFunctor         #-}+{-# LANGUAGE DeriveTraversable     #-}+{-# LANGUAGE FlexibleInstances     #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# OPTIONS_GHC -fno-warn-unused-imports       #-} ----------------------------------------------------------------------------- -- | -- Module      :  Data.Monoid.Split--- Copyright   :  (c) 2011 diagrams-core team (see LICENSE)+-- Copyright   :  (c) 2011-2015 diagrams-core team (see LICENSE) -- License     :  BSD-style (see LICENSE) -- Maintainer  :  diagrams-discuss@googlegroups.com --@@ -23,11 +26,16 @@ -----------------------------------------------------------------------------  module Data.Monoid.Split-       ( Split(..), split, unsplit+       ( Split(..)+       , split+       , unsplit         ) where +import Data.Data+import Data.Foldable import Data.Semigroup+import Data.Traversable  import Data.Monoid.Action @@ -48,7 +56,7 @@ --   keeps the outermost splits and throws away everything in between. data Split m = M m              | m :| m-  deriving (Show)+  deriving (Data, Typeable, Show, Read, Eq, Functor, Foldable, Traversable)  -- | If @m@ is a @Semigroup@, then @Split m@ is a semigroup which --   combines values on either side of a split, keeping only the