packages feed

haskell-src-exts-qq 0.2.3 → 0.3.0

raw patch · 2 files changed

+33/−21 lines, 2 filesdep ~haskell-src-extsPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: haskell-src-exts

API changes (from Hackage documentation)

- Language.Haskell.Exts.Translate: instance (ToExp a) => ToExp [a]
- Language.Haskell.Exts.Translate: instance (ToPat a) => ToPat [a]
+ Language.Haskell.Exts.QQ: decWithMode :: ParseMode -> QuasiQuoter
+ Language.Haskell.Exts.QQ: hsWithMode :: ParseMode -> QuasiQuoter
+ Language.Haskell.Exts.Translate: instance ToExp a => ToExp [a]
+ Language.Haskell.Exts.Translate: instance ToPat a => ToPat [a]
- Language.Haskell.Exts.Translate: errorMsg :: (Typeable a) => String -> a -> String
+ Language.Haskell.Exts.Translate: errorMsg :: Typeable a => String -> a -> String
- Language.Haskell.Exts.Translate: toDec :: (ToDec a) => a -> Dec
+ Language.Haskell.Exts.Translate: toDec :: ToDec a => a -> Dec
- Language.Haskell.Exts.Translate: toExp :: (ToExp a) => a -> Exp
+ Language.Haskell.Exts.Translate: toExp :: ToExp a => a -> Exp
- Language.Haskell.Exts.Translate: toKind :: (ToKind a) => a -> Kind
+ Language.Haskell.Exts.Translate: toKind :: ToKind a => a -> Kind
- Language.Haskell.Exts.Translate: toLit :: (ToLit a) => a -> Lit
+ Language.Haskell.Exts.Translate: toLit :: ToLit a => a -> Lit
- Language.Haskell.Exts.Translate: toLoc :: (ToLoc a) => a -> Loc
+ Language.Haskell.Exts.Translate: toLoc :: ToLoc a => a -> Loc
- Language.Haskell.Exts.Translate: toName :: (ToName a) => a -> Name
+ Language.Haskell.Exts.Translate: toName :: ToName a => a -> Name
- Language.Haskell.Exts.Translate: toPat :: (ToPat a) => a -> Pat
+ Language.Haskell.Exts.Translate: toPat :: ToPat a => a -> Pat
- Language.Haskell.Exts.Translate: toPred :: (ToPred a) => a -> Pred
+ Language.Haskell.Exts.Translate: toPred :: ToPred a => a -> Pred
- Language.Haskell.Exts.Translate: toStmt :: (ToStmt a) => a -> Stmt
+ Language.Haskell.Exts.Translate: toStmt :: ToStmt a => a -> Stmt
- Language.Haskell.Exts.Translate: toTyVarBndr :: (ToTyVarBndr a) => a -> TyVarBndr
+ Language.Haskell.Exts.Translate: toTyVarBndr :: ToTyVarBndr a => a -> TyVarBndr
- Language.Haskell.Exts.Translate: toType :: (ToType a) => a -> Type
+ Language.Haskell.Exts.Translate: toType :: ToType a => a -> Type

Files

Language/Haskell/Exts/QQ.hs view
@@ -13,7 +13,7 @@ -- -- In a pattern context, antiquotations use the same syntax. -module Language.Haskell.Exts.QQ (hs, dec) where+module Language.Haskell.Exts.QQ (hs, dec, hsWithMode, decWithMode) where  import qualified Language.Haskell.Exts as Hs import qualified Language.Haskell.Exts.Translate as Hs@@ -24,27 +24,39 @@ import Data.List (intercalate)  --- | A quasiquoter for expressions.-hs = QuasiQuoter { quoteExp = Hs.parseExpWithMode-                              Hs.defaultParseMode{Hs.extensions = Hs.knownExtensions}-                                    `project` antiquoteExp-                 , quotePat = Hs.parsePat `project` antiquotePat+-- | A quasiquoter for expressions. All Haskell extensions known by+-- haskell-src-exts are activated by default.+hs :: QuasiQuoter+hs = hsWithMode Hs.defaultParseMode{Hs.extensions = Hs.knownExtensions}++-- | A quasiquoter for top-level declarations.+dec :: QuasiQuoter+dec = decWithMode Hs.defaultParseMode{Hs.extensions = Hs.knownExtensions}++-- | Rather than importing the above quasiquoters, one can create custom+-- quasiquoters with a customized 'ParseMode' using this function.+--+-- > hs = hsWithMode mode+-- > dec = decWithMode mode+hsWithMode :: Hs.ParseMode -> QuasiQuoter+hsWithMode mode =+  QuasiQuoter { quoteExp = Hs.parseExpWithMode mode `project` antiquoteExp+              , quotePat = Hs.parsePat `project` antiquotePat #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 613-                 , quoteType = error "Unimplemented."-                 , quoteDec = error "Unimplemented."+              , quoteType = error "Unimplemented."+              , quoteDec = error "Unimplemented." #endif-                 }+              } --- | A quasiquoter for top-level declarations.-dec = QuasiQuoter { quoteExp = Hs.parseDeclWithMode-                               Hs.defaultParseMode{Hs.extensions = Hs.knownExtensions}-                                     `project` antiquoteExp-                  , quotePat = Hs.parsePat `project` antiquotePat+decWithMode :: Hs.ParseMode -> QuasiQuoter+decWithMode mode =+  QuasiQuoter { quoteExp = Hs.parseDeclWithMode mode `project` antiquoteExp+              , quotePat = Hs.parsePat `project` antiquotePat #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 613-                  , quoteType = error "Unimplemented."-                  , quoteDec = error "Unimplemented."+              , quoteType = error "Unimplemented."+              , quoteDec = error "Unimplemented." #endif-                  }+              }  project f k s = case f s of                   Hs.ParseOk x -> k x
haskell-src-exts-qq.cabal view
@@ -1,5 +1,5 @@ Name:           haskell-src-exts-qq-Version:        0.2.3+Version:        0.3.0 Author:         Mathieu Boespflug Maintainer:     Mathieu Boespflug <mboes@tweag.net> Synopsis:       A quasiquoter for haskell-src-exts.@@ -10,7 +10,7 @@     * Antiquotations, denoted by stealing the splice syntax of     Template Haskell, for example @[$hs| $x ++ $(Hs.strE "bar") |]@.     Splices may not nested.-+    .     * Antiquoting names in patterns. Names that are antiquoted appear     surrounded by double parentheses. For instance:     .@@ -29,8 +29,8 @@ library   Build-Depends:  base >= 4 && < 5, syb, template-haskell,                   -- xxx awaiting cabal fix.-                  haskell-src-exts == 1.8.2+                  haskell-src-exts == 1.9.0   Extensions:      PatternGuards, TypeSynonymInstances, TemplateHaskell, CPP   Exposed-Modules: Language.Haskell.Exts.QQ                    Language.Haskell.Exts.Translate-  cpp-options:    -DVERSION_haskell_src_exts="1.8.2"+  cpp-options:    -DVERSION_haskell_src_exts="1.9.0"