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 +40/−2
- changelog.markdown +6/−0
- th-expand-syns.cabal +3/−3
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