packages feed

monoid-extras 0.3.0.0 → 0.3.1.0

raw patch · 4 files changed

+52/−5 lines, 4 filesdep +semigroupoidsPVP ok

version bump matches the API change (PVP)

Dependencies added: semigroupoids

API changes (from Hackage documentation)

+ Data.Monoid.Endomorphism: Endomorphism :: k a a -> Endomorphism k a
+ Data.Monoid.Endomorphism: getEndomorphism :: Endomorphism k a -> k a a
+ Data.Monoid.Endomorphism: instance Category k => Monoid (Endomorphism k a)
+ Data.Monoid.Endomorphism: instance Semigroupoid k => Semigroup (Endomorphism k a)
+ Data.Monoid.Endomorphism: newtype Endomorphism k a
+ Data.Monoid.Inf: instance Foldable (Inf p)
+ Data.Monoid.Inf: instance Functor (Inf p)
+ Data.Monoid.Inf: instance Traversable (Inf p)

Files

CHANGES view
@@ -1,3 +1,8 @@+* 0.3.1: 20 August 2013++  - new module Data.Monoid.Endomorphism+  - add derived Functor, Foldable, and Traversable instances for Data.Monoid.Inf.Inf+ * 0.3: 2 May 2013    - generalize PosInf to Inf, which supports making monoids out of
monoid-extras.cabal view
@@ -1,5 +1,5 @@ name:                monoid-extras-version:             0.3.0.0+version:             0.3.1.0 synopsis:            Various extra monoid-related definitions and utilities description:         Various extra monoid-related definitions and utilities,                      such as monoid actions, monoid coproducts, \"deletable\"@@ -24,6 +24,7 @@                      Data.Monoid.Coproduct,                      Data.Monoid.Cut,                      Data.Monoid.Deletable,+                     Data.Monoid.Endomorphism,                      Data.Monoid.Inf,                      Data.Monoid.MList,                      Data.Monoid.Recommend,@@ -31,7 +32,8 @@                      Data.Monoid.WithSemigroup    build-depends:     base >= 4.3 && < 4.8,-                     semigroups >= 0.8 && < 0.10+                     semigroups >= 0.8 && < 0.10,+                     semigroupoids < 4    hs-source-dirs:    src 
+ src/Data/Monoid/Endomorphism.hs view
@@ -0,0 +1,33 @@+-----------------------------------------------------------------------------+-- |+-- Module      :  Data.Monoid.Endomorphism+-- Copyright   :  (c) 2013 diagrams-core team (see LICENSE)+-- License     :  BSD-style (see LICENSE)+-- Maintainer  :  diagrams-discuss@googlegroups.com+--+-- The monoid of endomorphisms over any 'Category'.+--+-----------------------------------------------------------------------------++module Data.Monoid.Endomorphism+    ( Endomorphism(..)+    )+    where++import           Control.Category+import           Data.Semigroup+import           Data.Semigroupoid+import           Prelude           hiding (id, (.))++-- | An 'Endomorphism' in a given 'Category' is a morphism from some+--   object to itself.  The set of endomorphisms for a particular+--   object form a monoid, with composition as the combining operation+--   and the identity morphism as the identity element.+newtype Endomorphism k a = Endomorphism {getEndomorphism :: k a a}++instance Semigroupoid k => Semigroup (Endomorphism k a) where+  Endomorphism a <> Endomorphism b = Endomorphism (a `o` b)++instance Category k => Monoid (Endomorphism k a) where+  mempty = Endomorphism id+  Endomorphism a `mappend` Endomorphism b = Endomorphism (a . b)
src/Data/Monoid/Inf.hs view
@@ -1,3 +1,7 @@+{-# LANGUAGE DeriveFoldable    #-}+{-# LANGUAGE DeriveFunctor     #-}+{-# LANGUAGE DeriveTraversable #-}+{-# LANGUAGE EmptyDataDecls    #-} {-# LANGUAGE FlexibleInstances #-} ----------------------------------------------------------------------------- -- |@@ -24,14 +28,17 @@        ) where  import           Data.Semigroup-import qualified Prelude as P-import           Prelude hiding (minimum, maximum)+import           Prelude          hiding (maximum, minimum)+import qualified Prelude          as P +import           Data.Foldable    (Foldable)+import           Data.Traversable (Traversable)+ data Pos data Neg  data Inf p a = Infinity | Finite a-  deriving (Eq, Show, Read)+  deriving (Eq, Show, Read, Functor, Foldable, Traversable)  type PosInf a = Inf Pos a type NegInf a = Inf Neg a