
#11081: Implement Introspective Template Haskell -------------------------------------+------------------------------------- Reporter: goldfire | Owner: Type: feature request | Status: new Priority: normal | Milestone: ⊥ Component: Template Haskell | Version: 7.10.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | TemplateHaskell/Introspective | -------------------------------------+------------------------------------- Comment (by Iceland_jack): Replying to [comment:5 simonpj]:
I'm very unsure about the back-compat shim, but maybe it's possible. Yay for pattern synonyms.
Could they also be used for other [https://ghc.haskell.org/trac/ghc/wiki/Migration/8.0?action=diff&version=42 migrations]? In [https://hackage.haskell.org/package/template- haskell-2.11.0.0/docs/Language-Haskell-TH-Lib.html#v:instanceD Language.Haskell.TH.Lib] another function `instanceWithOverlapD` was added to prevent breakage: {{{#!hs instanceD :: CxtQ -> TypeQ -> [DecQ] -> DecQ instanceWithOverlapD :: Maybe Overlap -> CxtQ -> TypeQ -> [DecQ] -> DecQ }}} The same could have been done with `InstanceD` {{{#!hs -- OLD: -- | InstanceD Cxt Type [Dec] | InstanceWithOverlapD (Maybe Overlap) Cxt Type [Dec] }}} and like `ErrorCall` defining {{{#!hs pattern InstanceD :: Ctx -> Type -> [Dec] -> Dec pattern InstanceD ctx ty decs = InstanceWithOverlapD Nothing ctx ty decs }}} which suffers from the [ticket:8779#comment:12 same problem] as `ErrorCall`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11081#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler