algebraic-classes 0.5.1 → 0.5.2
raw patch · 4 files changed
+24/−6 lines, 4 filesdep ~basedep ~template-haskellPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base, template-haskell
API changes (from Hackage documentation)
Files
- Data/Algebra/TH.hs +2/−2
- algebraic-classes.cabal +3/−3
- examples/Fractional.hs +18/−0
- examples/Signatures.hs +1/−1
Data/Algebra/TH.hs view
@@ -161,8 +161,8 @@ signatureInstances nm s = [asInst, showInst, sigTFInst] where signature = ConT (signatureName s)- sigTFInst = TySynInstD ''Signature [ConT nm] signature- typeInst = TySynInstD ''Class [signature] (ConT nm)+ sigTFInst = TySynInstD ''Signature (TySynEqn [ConT nm] signature)+ typeInst = TySynInstD ''Class (TySynEqn [signature] (ConT nm)) asClauses = [ Clause [ConP opName (map VarP args)] (NormalB (foldl (\e arg -> AppE e (VarE arg)) (VarE fName) args)) [] | OperationTH fName opName ar _ _ <- operations s, let args = mkArgList ar ]
algebraic-classes.cabal view
@@ -1,5 +1,5 @@ name: algebraic-classes-version: 0.5.1+version: 0.5.2 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@.@@ -35,6 +35,6 @@ Data.Algebra.Internal build-depends:- base == 4.6.*+ base == 4.7.* , syb == 0.4.*- , template-haskell == 2.8.0.*+ , template-haskell == 2.9.0.*
+ examples/Fractional.hs view
@@ -0,0 +1,18 @@+{-# OPTIONS_GHC -ddump-splices #-}+{-# LANGUAGE TemplateHaskell, TypeFamilies, DeriveFunctor, DeriveFoldable, DeriveTraversable #-}++import Data.Algebra+import Data.Algebra.TH+import Data.Monoid+import Data.Foldable+import Data.Traversable+import Data.Ratio++deriveSignature ''Num+deriveSignature ''Fractional++deriveInstance [t| (Num m, Num n) => Num (m, n) |]+deriveInstance [t| (Fractional m, Fractional n) => Fractional (m, n) |]++test :: (Ratio Int, Ratio Int)+test = (5, 3) / (3, 2) + (1, 4)
examples/Signatures.hs view
@@ -1,4 +1,4 @@- {-# OPTIONS_GHC -ddump-splices #-}+{-# OPTIONS_GHC -ddump-splices #-} {-# LANGUAGE TemplateHaskell, TypeFamilies, DeriveFunctor, DeriveFoldable, DeriveTraversable #-} import Data.Algebra