packages feed

haskell-src-meta 0.8.6 → 0.8.7

raw patch · 7 files changed

+57/−17 lines, 7 filesdep ~template-haskellPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: template-haskell

API changes (from Hackage documentation)

- Language.Haskell.Meta.Syntax.Translate: instance Language.Haskell.Meta.Syntax.Translate.ToName Language.Haskell.TH.Syntax.TyVarBndr
+ Language.Haskell.Meta.Syntax.Translate: instance Language.Haskell.Meta.Syntax.Translate.ToName (Language.Haskell.Meta.Syntax.Translate.TyVarBndr_ flag)
+ Language.Haskell.Meta.Syntax.Translate: toTyVarSpec :: TyVarBndr_ flag -> TyVarBndr_ flag
+ Language.Haskell.Meta.Syntax.Translate: type TyVarBndr_ flag = TyVarBndr
- Language.Haskell.Meta.Syntax.Translate: toTyVar :: TyVarBind l -> TyVarBndr
+ Language.Haskell.Meta.Syntax.Translate: toTyVar :: TyVarBind l -> TyVarBndr_ ()
- Language.Haskell.Meta.Syntax.Translate: toTyVars :: ToTyVars a => a -> [TyVarBndr]
+ Language.Haskell.Meta.Syntax.Translate: toTyVars :: ToTyVars a => a -> [TyVarBndr_ ()]
- Language.Haskell.Meta.Utils: decTyVars :: Dec -> [TyVarBndr]
+ Language.Haskell.Meta.Utils: decTyVars :: Dec -> [TyVarBndr_ ()]

Files

ChangeLog view
@@ -1,3 +1,6 @@+0.8.7:+- Compatibility with template-haskell shipped with GHC 9.0+ 0.8.6: - Add TypeApplications to default extensions 
examples/BF.hs view
@@ -67,7 +67,9 @@   lift MovR       = [|MovR|]   lift (While xs) = [|While $(lift xs)|] -#if MIN_VERSION_template_haskell(2,16,0)+#if MIN_VERSION_template_haskell(2,17,0)+  liftTyped = unsafeCodeCoerce . lift+#elif MIN_VERSION_template_haskell(2,16,0)   liftTyped = unsafeTExpCoerce . lift   -- TODO: get stylish haskell to be happy w/ the below   -- liftTyped Inp        = [||Inp||]
examples/HsHere.hs view
@@ -60,15 +60,15 @@         ,quotePat = herePatQ}  instance Lift Here where-  lift = liftHere-#if MIN_VERSION_template_haskell(2,16,0)+  lift (TextH s)  = (litE . stringL) s+  lift (CodeH e)  = [|show $(return e)|]+  lift (ManyH hs) = [|concat $(listE (fmap lift hs))|]++#if MIN_VERSION_template_haskell(2,17,0)+  liftTyped = unsafeCodeCoerce . lift+#elif MIN_VERSION_template_haskell(2,16,0)   liftTyped = unsafeTExpCoerce . lift -- TODO: the right way? #endif--liftHere :: Here -> ExpQ-liftHere (TextH s)  = (litE . stringL) s-liftHere (CodeH e)  = [|show $(return e)|]-liftHere (ManyH hs) = [|concat $(listE (fmap liftHere hs))|]   hereExpQ :: String -> ExpQ
examples/SKI.hs view
@@ -71,7 +71,9 @@  instance Lift SKI where   lift = liftSKI-#if MIN_VERSION_template_haskell(2,16,0)+#if MIN_VERSION_template_haskell(2,17,0)+  liftTyped = unsafeCodeCoerce . lift+#elif MIN_VERSION_template_haskell(2,16,0)   liftTyped = unsafeTExpCoerce . lift -- TODO: the right way? #endif 
haskell-src-meta.cabal view
@@ -1,5 +1,5 @@ name:               haskell-src-meta-version:            0.8.6+version:            0.8.7 cabal-version:      >= 1.10 build-type:         Simple license:            BSD3@@ -22,7 +22,7 @@                    haskell-src-exts >= 1.18 && < 1.24,                    pretty >= 1.0 && < 1.2,                    syb >= 0.1 && < 0.8,-                   template-haskell >= 2.10 && < 2.17,+                   template-haskell >= 2.10 && < 2.18,                    th-orphans >= 0.12 && < 0.14    if impl(ghc < 7.8)
src/Language/Haskell/Meta/Syntax/Translate.hs view
@@ -20,10 +20,16 @@ import qualified Data.List                    as List import qualified Language.Haskell.Exts.SrcLoc as Exts.SrcLoc import qualified Language.Haskell.Exts.Syntax as Exts+import qualified Language.Haskell.TH.Lib      as TH import qualified Language.Haskell.TH.Syntax   as TH  ----------------------------------------------------------------------------- +#if MIN_VERSION_template_haskell(2,17,0)+type TyVarBndr_ flag = TH.TyVarBndr flag+#else+type TyVarBndr_ flag = TH.TyVarBndr+#endif  class ToName a where toName :: a -> TH.Name class ToNames a where toNames :: a -> [TH.Name]@@ -37,7 +43,7 @@ class ToLoc  a where toLoc  :: a -> TH.Loc class ToCxt  a where toCxt  :: a -> TH.Cxt class ToPred a where toPred :: a -> TH.Pred-class ToTyVars a where toTyVars :: a -> [TH.TyVarBndr]+class ToTyVars a where toTyVars :: a -> [TyVarBndr_ ()] class ToMaybeKind a where toMaybeKind :: a -> Maybe TH.Kind #if MIN_VERSION_template_haskell(2,11,0) class ToInjectivityAnn a where toInjectivityAnn :: a -> TH.InjectivityAnn@@ -279,7 +285,11 @@   toExp (Exts.If _ a b c)              = TH.CondE (toExp a) (toExp b) (toExp c)   toExp (Exts.MultiIf _ ifs)           = TH.MultiIfE (map toGuard ifs)   toExp (Exts.Case _ e alts)           = TH.CaseE (toExp e) (map toMatch alts)+#if MIN_VERSION_template_haskell(2,17,0)+  toExp (Exts.Do _ ss)                 = TH.DoE Nothing (map toStmt ss)+#else   toExp (Exts.Do _ ss)                 = TH.DoE (map toStmt ss)+#endif   toExp e@Exts.MDo{}                   = noTH "toExp" e   toExp (Exts.Tuple _ Exts.Boxed xs)   = TH.TupE (fmap toTupEl xs)   toExp (Exts.Tuple _ Exts.Unboxed xs) = TH.UnboxedTupE (fmap toTupEl xs)@@ -347,9 +357,14 @@ instance ToName TH.Name where   toName = id -instance ToName TH.TyVarBndr where+instance ToName (TyVarBndr_ flag) where+#if MIN_VERSION_template_haskell(2,17,0)+  toName (TH.PlainTV n _)    = n+  toName (TH.KindedTV n _ _) = n+#else   toName (TH.PlainTV n)    = n   toName (TH.KindedTV n _) = n+#endif  #if !MIN_VERSION_haskell_src_exts(1,21,0) instance ToType (Exts.Kind l) where@@ -375,12 +390,26 @@ toKind :: Exts.Kind l -> TH.Kind toKind = toType -toTyVar :: Exts.TyVarBind l -> TH.TyVarBndr+toTyVar :: Exts.TyVarBind l -> TyVarBndr_ ()+#if MIN_VERSION_template_haskell(2,17,0)+toTyVar (Exts.KindedVar _ n k) = TH.KindedTV (toName n) () (toKind k)+toTyVar (Exts.UnkindedVar _ n) = TH.PlainTV (toName n) ()+#else toTyVar (Exts.KindedVar _ n k) = TH.KindedTV (toName n) (toKind k) toTyVar (Exts.UnkindedVar _ n) = TH.PlainTV (toName n)+#endif +#if MIN_VERSION_template_haskell(2,17,0)+toTyVarSpec :: TyVarBndr_ () -> TH.TyVarBndrSpec+toTyVarSpec (TH.KindedTV n () k) = TH.KindedTV n TH.SpecifiedSpec k+toTyVarSpec (TH.PlainTV n ()) = TH.PlainTV n TH.SpecifiedSpec+#else+toTyVarSpec :: TyVarBndr_ flag -> TyVarBndr_ flag+toTyVarSpec = id+#endif+ instance ToType (Exts.Type l) where-  toType (Exts.TyForall _ tvbM cxt t) = TH.ForallT (maybe [] (fmap toTyVar) tvbM) (toCxt cxt) (toType t)+  toType (Exts.TyForall _ tvbM cxt t) = TH.ForallT (maybe [] (fmap (toTyVarSpec . toTyVar)) tvbM) (toCxt cxt) (toType t)   toType (Exts.TyFun _ a b) = toType a .->. toType b   toType (Exts.TyList _ t) = TH.ListT `TH.AppT` toType t   toType (Exts.TyTuple _ b ts) = foldAppT (tuple . length $ ts) (fmap toType ts)@@ -713,7 +742,7 @@  qualConDeclToCon :: Exts.QualConDecl l -> TH.Con qualConDeclToCon (Exts.QualConDecl _ Nothing Nothing cdecl) = conDeclToCon cdecl-qualConDeclToCon (Exts.QualConDecl _ ns cxt cdecl) = TH.ForallC (toTyVars ns)+qualConDeclToCon (Exts.QualConDecl _ ns cxt cdecl) = TH.ForallC (toTyVarSpec <$> toTyVars ns)                                                     (toCxt cxt)                                                     (conDeclToCon cdecl) 
src/Language/Haskell/Meta/Utils.hs view
@@ -161,7 +161,11 @@         (t',env4,new4) = renameT env3 new3 t     in (ForallT ns'' cxt' t', env4, new4)   where+#if MIN_VERSION_template_haskell(2,17,0)+    unVarT (VarT n) = PlainTV n SpecifiedSpec+#else     unVarT (VarT n) = PlainTV n+#endif     unVarT ty       = error $ "renameT: unVarT: TODO for" ++ show ty     renamePreds = renameThings renamePred     renamePred = renameT@@ -230,7 +234,7 @@ decCons _                        = []  -decTyVars :: Dec -> [TyVarBndr]+decTyVars :: Dec -> [TyVarBndr_ ()] #if MIN_VERSION_template_haskell(2,11,0) decTyVars (DataD _ _ ns _ _ _)    = ns decTyVars (NewtypeD _ _ ns _ _ _) = ns