dependent-sum-template 0.1.0.0 → 0.1.0.2
raw patch · 4 files changed
+26/−5 lines, 4 filesnew-uploaderPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Data.GADT.Compare.TH: compare' :: Ord a1 => a1 -> a1 -> GComparing a2 b ()
+ Data.GADT.Compare.TH: compare' :: forall k a1 (a2 :: k) (b :: k). Ord a1 => a1 -> a1 -> GComparing a2 b ()
- Data.GADT.Compare.TH: runGComparing :: () => GComparing a b (GOrdering a b) -> GOrdering a b
+ Data.GADT.Compare.TH: runGComparing :: forall k (a :: k) (b :: k). GComparing a b (GOrdering a b) -> GOrdering a b
Files
- ChangeLog.md +8/−0
- dependent-sum-template.cabal +5/−4
- src/Data/Dependent/Sum/TH/Internal.hs +12/−1
- test/test.hs +1/−0
ChangeLog.md view
@@ -1,5 +1,13 @@ # Revision history for dependent-sum +## 0.1.0.2 - 2020-03-23++* Update GitHub repository in cabal metadata.++## 0.1.0.1 - 2020-03-21++* Support GHC 8.8.+ ## 0.1.0.0 - 2019-03-21 * Remove code for generating instances of *Tag classes, as they were removed in dependent-sum-0.6.
dependent-sum-template.cabal view
@@ -1,5 +1,5 @@ name: dependent-sum-template-version: 0.1.0.0+version: 0.1.0.2 stability: experimental cabal-version: >= 1.8@@ -8,7 +8,7 @@ author: James Cook <mokus@deepbondi.net> maintainer: Ryan Trinkle <ryan.trinkle@obsidian.systems> license: PublicDomain-homepage: /dev/null+homepage: https://github.com/obsidiansystems/dependent-sum category: Unclassified synopsis: Template Haskell code to generate instances of classes in dependent-sum package@@ -17,13 +17,14 @@ tested-with: GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4,- GHC == 8.6.4+ GHC == 8.6.5,+ GHC == 8.8.3 extra-source-files: ChangeLog.md source-repository head type: git- location: https://github.com/mokus0/dependent-sum-template+ location: https://github.com/obsidiansystems/dependent-sum Library if impl(ghc < 7.10)
src/Data/Dependent/Sum/TH/Internal.hs view
@@ -40,9 +40,20 @@ where inst = instanceD (cxt (map return dataCxt)) (makeClassHead $ conT name) [dec] dec = f bndrs cons+#if __GLASGOW_HASKELL__ >= 808+deriveForDec className makeClassHead f (DataInstD dataCxt tvBndrs ty _ cons _) = return <$> inst+#else deriveForDec className makeClassHead f (DataInstD dataCxt name tyArgs _ cons _) = return <$> inst+#endif where- inst = instanceD (cxt (map return dataCxt)) (makeClassHead $ foldl1 appT (map return $ (ConT name : init tyArgs))) [dec]+ inst = instanceD (cxt (map return dataCxt)) clhead [dec]+#if __GLASGOW_HASKELL__ >= 808+ clhead = makeClassHead $ return $ initTy ty+ bndrs = [PlainTV v | PlainTV v <- maybe [] id tvBndrs]+ initTy (AppT ty _) = ty+#else+ clhead = makeClassHead $ foldl1 appT (map return $ (ConT name : init tyArgs)) -- TODO: figure out proper number of family parameters vs instance parameters bndrs = [PlainTV v | VarT v <- tail tyArgs ]+#endif dec = f bndrs cons
test/test.hs view
@@ -19,6 +19,7 @@ import Data.GADT.Compare.TH import Data.GADT.Show import Data.GADT.Show.TH+import Data.Type.Equality data MySum :: * -> * where MySum_Int :: MySum Int