packages feed

th-expand-syns 0.3.0.6 → 0.4.0.0

raw patch · 3 files changed

+49/−5 lines, 3 filesdep ~template-haskellPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: template-haskell

API changes (from Hackage documentation)

- Language.Haskell.TH.ExpandSyns: instance HasForallConstruct Con
- Language.Haskell.TH.ExpandSyns: instance HasForallConstruct Type
- Language.Haskell.TH.ExpandSyns: instance SubstTypeVariable Con
- Language.Haskell.TH.ExpandSyns: instance SubstTypeVariable Pred
- Language.Haskell.TH.ExpandSyns: instance SubstTypeVariable Type
+ Language.Haskell.TH.ExpandSyns: instance Language.Haskell.TH.ExpandSyns.HasForallConstruct Language.Haskell.TH.Syntax.Con
+ Language.Haskell.TH.ExpandSyns: instance Language.Haskell.TH.ExpandSyns.HasForallConstruct Language.Haskell.TH.Syntax.Type
+ Language.Haskell.TH.ExpandSyns: instance Language.Haskell.TH.ExpandSyns.SubstTypeVariable Language.Haskell.TH.Syntax.Con
+ Language.Haskell.TH.ExpandSyns: instance Language.Haskell.TH.ExpandSyns.SubstTypeVariable Language.Haskell.TH.Syntax.Type
- Language.Haskell.TH.ExpandSyns: evades :: Data t => [Name] -> t -> [Name]
+ Language.Haskell.TH.ExpandSyns: evades :: (Data t) => [Name] -> t -> [Name]

Files

Language/Haskell/TH/ExpandSyns.hs view
@@ -74,7 +74,11 @@     TyConI d -> decIsSyn d     ClassI {} -> return Nothing     PrimTyConI {} -> return Nothing-#if MIN_VERSION_template_haskell(2,7,0)+#if MIN_VERSION_template_haskell(2,11,0)+    FamilyI (OpenTypeFamilyD (TypeFamilyHead name _ _ _)) _ -> maybeWarnTypeFamily TypeFam name >> return Nothing+    FamilyI (ClosedTypeFamilyD (TypeFamilyHead name _ _ _) _) _ -> maybeWarnTypeFamily TypeFam name >> return Nothing+    FamilyI (DataFamilyD _ _ _) _ -> return Nothing+#elif MIN_VERSION_template_haskell(2,7,0)     FamilyI (FamilyD flavour name _ _) _ -> maybeWarnTypeFamily flavour name >> return Nothing #endif     _ -> do@@ -111,7 +115,11 @@ decIsSyn (DataD {}) = return Nothing decIsSyn (NewtypeD {}) = return Nothing decIsSyn (TySynD _ vars t) = return (Just (tyVarBndrGetName <$> vars,t))-#if MIN_VERSION_template_haskell(2,4,0)+#if MIN_VERSION_template_haskell(2,11,0)+decIsSyn (OpenTypeFamilyD (TypeFamilyHead name _ _ _)) = maybeWarnTypeFamily TypeFam name >> return Nothing+decIsSyn (ClosedTypeFamilyD (TypeFamilyHead name _ _ _) _) = maybeWarnTypeFamily TypeFam name >> return Nothing+decIsSyn (DataFamilyD _ _ _) = return Nothing+#elif MIN_VERSION_template_haskell(2,4,0) decIsSyn (FamilyD flavour name _ _) = maybeWarnTypeFamily flavour name >> return Nothing #endif decIsSyn x = do@@ -209,6 +217,24 @@       go acc x@EqualityT = passThrough acc x #endif +#if MIN_VERSION_template_haskell(2,11,0)+      go acc (InfixT t1 nm t2) =+          do+            t1' <- expandSyns t1+            t2' <- expandSyns t2+            return (acc,InfixT t1' nm t2')+      go acc (UInfixT t1 nm t2) =+          do+            t1' <- expandSyns t1+            t2' <- expandSyns t2+            return (acc,UInfixT t1' nm t2')+      go acc (ParensT t) =+          do+            (acc',t') <- go acc t+            return (acc',ParensT t')+      go acc x@WildCardT = passThrough acc x+#endif+ class SubstTypeVariable a where     -- | Capture-free substitution     subst :: (Name, Type) -> a -> a@@ -251,6 +277,13 @@       go s@EqualityT = s #endif +#if MIN_VERSION_template_haskell(2,11,0)+      go (InfixT t1 nm t2) = InfixT (go t1) nm (go t2)+      go (UInfixT t1 nm t2) = UInfixT (go t1) nm (go t2)+      go (ParensT t1) = ParensT (go t1)+      go s@WildCardT = s+#endif+ -- testCapture :: Type -- testCapture = --     let@@ -317,7 +350,12 @@       go (InfixC (y1,t1) op (y2,t2)) = InfixC (y1,st t1) op (y2,st t2)       go (ForallC vars cxt body) =           commonForallCase (v,t) (vars,cxt,body)+#if MIN_VERSION_template_haskell(2,11,0)+      go c@GadtC{} = errGadt c+      go c@RecGadtC{} = errGadt c +      errGadt c = error (packagename++": substInCon currently doesn't support GADT constructors with GHC >= 8 ("++pprint c++")")+#endif   class HasForallConstruct a where
changelog.markdown view
@@ -1,3 +1,9 @@+## 0.4.0.0++*   Fixed build with GHC 8 / template-haskell-2.11 (Thanks to Christiaan Baaij)++    Note: `substInCon` doesn't support GADT constructor with GHC 8 in this version+ ## 0.3.0.6  * Fixed build with current (commit 029a296a770addbd096bbfd6de0936327ee620d4) GHC 7.10 (Thanks to David Fox)
th-expand-syns.cabal view
@@ -1,5 +1,5 @@ name:                th-expand-syns-version:             0.3.0.6+version:             0.4.0.0 synopsis:            Expands type synonyms in Template Haskell ASTs description:         Expands type synonyms in Template Haskell ASTs category:            Template Haskell@@ -16,8 +16,8 @@  location: git://github.com/DanielSchuessler/th-expand-syns.git  Library-    build-depends:       base >= 4 && < 5, template-haskell < 2.11, syb, containers-    ghc-options:         +    build-depends:       base >= 4 && < 5, template-haskell < 2.12, syb, containers+    ghc-options:     exposed-modules:     Language.Haskell.TH.ExpandSyns  Test-Suite test-th-expand-syns