packages feed

monoids 0.1.9 → 0.1.10

raw patch · 2 files changed

+126/−6 lines, 2 files

Files

+ Data/Monoid/Instances.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE FlexibleInstances, MultiParamTypeClasses, UndecidableInstances, OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++-----------------------------------------------------------------------------+-- |+-- Module      :  Data.Monoid.Instances+-- Copyright   :  (c) Edward Kmett 2009+-- License     :  BSD-style+-- Maintainer  :  libraries@haskell.org+-- Stability   :  experimental+-- Portability :  portable+--+-- A collection of orphan instance declarations for Monoids that should+-- eventually be pushed back down to the source packages.+--+-- Every package that uses these instances includes this package internally.+--+-- Includes:+--+-- * 'Monoid' instances for the 'Monad' transformers from the mtl package+--+-- * A 'Monoid' instance for the 'ParsecT' 'Monad' from parsec-3.+--+-- * 'IsString' instances for tuples of 'IsString' for overloaded string support.+--+-- * A 'Monoid' instance for the 'FingerTree' in the fingertree package +--+-- * 'Monoid' instances for 'Int', 'Integer', and 'Ratio' using @(+,0)@+--+-- This module is automatically included everywhere this functionality is required+-- within this package. You should only have to import this module yourself if you +-- want these instances for your own purposes.+-----------------------------------------------------------------------------++module Data.Monoid.Instances where++import Control.Monad.Reader++import qualified Control.Monad.RWS.Lazy as LRWS+import qualified Control.Monad.RWS.Strict as SRWS++import qualified Control.Monad.State.Lazy as LState+import qualified Control.Monad.State.Strict as SState++import Control.Monad.Writer+import qualified Control.Monad.Writer.Strict as SWriter++import Data.String++import Data.Ratio++import Data.FingerTree++import Text.Parsec.Prim++-- orphan Monoid instances for Monad Transformers+instance (MonadPlus m, Monoid w) => Monoid (SWriter.WriterT w m n) where+    mempty = mzero+    mappend = mplus++instance (MonadPlus m, Monoid w) => Monoid (WriterT w m n) where+    mempty = mzero+    mappend = mplus++instance (MonadPlus m, Monoid w) => Monoid (SRWS.RWST r w s m n) where +    mempty = mzero+    mappend = mplus++instance (MonadPlus m, Monoid w) => Monoid (LRWS.RWST r w s m n) where +    mempty = mzero+    mappend = mplus++instance MonadPlus m => Monoid (ReaderT e m n) where+    mempty = mzero+    mappend = mplus++instance MonadPlus m => Monoid (SState.StateT s m n) where+    mempty = mzero+    mappend = mplus++instance MonadPlus m => Monoid (LState.StateT s m n) where+    mempty = mzero+    mappend = mplus++-- orphan, which should be in Data.FingerTree+instance Measured v a => Monoid (FingerTree v a) where+    mempty = empty+    mappend = (><)++-- orphan, which should be in Parsec+instance Stream s m t => Monoid (ParsecT s u m a) where+    mempty = mzero+    a `mappend` b = try a <|> b++-- orphan, perhaps should be in Data.String+instance (IsString a, IsString b) => IsString (a,b) where+    fromString a = (fromString a, fromString a)++instance (IsString a, IsString b, IsString c) => IsString (a,b,c) where+    fromString a = (fromString a, fromString a, fromString a)++instance (IsString a, IsString b, IsString c, IsString d) => IsString (a,b,c,d) where+    fromString a = (fromString a, fromString a, fromString a, fromString a)++instance (IsString a, IsString b, IsString c, IsString d, IsString e) => IsString (a,b,c,d,e) where+    fromString a = (fromString a, fromString a, fromString a, fromString a, fromString a)++instance Monoid Int where+    mempty = 0+    mappend = (+)++instance Monoid Integer where+    mempty = 0+    mappend = (+)++instance Integral m => Monoid (Ratio m) where+    mempty = 0+    mappend = (+)
monoids.cabal view
@@ -1,5 +1,5 @@ name:		    monoids-version:	    0.1.9+version:	    0.1.10 license:	    BSD3 license-file:   LICENSE author:		    Edward A. Kmett@@ -41,6 +41,7 @@     Data.Monoid.Generator     Data.Monoid.Generator.LZ78     Data.Monoid.Generator.RLE+    Data.Monoid.Instances     Data.Monoid.Lexical.SourcePosition     Data.Monoid.Lexical.UTF8.Decoder     Data.Monoid.Lexical.Words@@ -48,19 +49,20 @@     Data.Monoid.Multiplicative     Data.Monoid.Multiplicative.Sugar     Data.Monoid.Ord-    Data.Monoid.Self     Data.Monoid.Reducer     Data.Monoid.Reducer.Char     Data.Monoid.Reducer.With+    Data.Monoid.Self     Data.Monoid.Union     Data.Ring     Data.Ring.Boolean-    Data.Ring.Semi-    Data.Ring.Semi.Tropical-    Data.Ring.Semi.Near-    Data.Ring.Semi.Ord     Data.Ring.FromNum     Data.Ring.Module     Data.Ring.Module.AutomaticDifferentiation+    Data.Ring.Semi+    Data.Ring.Semi.Near+    Data.Ring.Semi.Ord+    Data.Ring.Semi.Tropical     Data.Ring.Sugar+       ghc-options: -Wall -fno-warn-duplicate-exports