packages feed

algebraic-classes 0 → 0.1

raw patch · 4 files changed

+13/−4 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.Algebra: instance Foldable MonoidSignature
+ Data.Algebra: instance Traversable MonoidSignature
- Data.Algebra: class Functor f => AlgebraSignature f where type family Class f :: * -> Constraint
+ Data.Algebra: class Traversable f => AlgebraSignature f where type family Class f :: * -> Constraint
- Data.Algebra.Internal: class Functor f => AlgebraSignature f where type family Class f :: * -> Constraint
+ Data.Algebra.Internal: class Traversable f => AlgebraSignature f where type family Class f :: * -> Constraint

Files

Data/Algebra.hs view
@@ -6,6 +6,8 @@   , UndecidableInstances   , TemplateHaskell   , DeriveFunctor+  , DeriveFoldable+  , DeriveTraversable   #-} ----------------------------------------------------------------------------- -- |@@ -33,6 +35,8 @@  import Control.Arrow ((&&&)) import Data.Monoid+import Data.Foldable+import Data.Traversable   instance Algebra f () where
Data/Algebra/Internal.hs view
@@ -16,8 +16,9 @@ module Data.Algebra.Internal where  import GHC.Exts (Constraint)+import Data.Traversable (Traversable) -class Functor f => AlgebraSignature f where+class Traversable f => AlgebraSignature f where   -- | The class for which @f@ is the signature.   type Class f :: * -> Constraint   -- | Translate the operations of the signature to method calls of the class.
Data/Algebra/TH.hs view
@@ -23,9 +23,13 @@ import Data.Algebra.Internal  import Control.Applicative+import Data.Foldable (Foldable)+import Data.Traversable (Traversable)+ import Language.Haskell.TH import Data.Generics + data SignatureTH = SignatureTH    { signatureName :: Name   , typeVarName :: Name@@ -89,7 +93,7 @@ buildSignatureDataType :: SignatureTH -> [Dec] buildSignatureDataType s =   let cons = [ NormalC nm (map ((,) NotStrict) ts) | OperationTH _ nm ts <- operations s ]-  in [DataD [] (signatureName s) [PlainTV (typeVarName s)] cons [''Functor, ''Show]]+  in [DataD [] (signatureName s) [PlainTV (typeVarName s)] cons [''Functor, ''Foldable, ''Traversable, ''Show]]  signatureInstance :: Name -> SignatureTH -> [Dec] signatureInstance nm s = [inst]
algebraic-classes.cabal view
@@ -1,5 +1,5 @@ name:                algebraic-classes-version:             0+version:             0.1 synopsis:            Conversions between algebraic classes and F-algebras. description:         Algebraic classes are type classes where all the methods return a value of the same type, which is also the class parameter.                      Examples from @base@ are @Num@ and @Monoid@.@@ -20,7 +20,7 @@ license-file:        LICENSE author:              Sjoerd Visscher maintainer:          sjoerd@w3future.com-category:            Data+category:            Data, Generics, Math build-type:          Simple cabal-version:       >=1.8