[ghc-steering-committee] Please review #696: Splitting out stable interfaces from template-haskell

Adam Gundry adam at well-typed.com
Thu Jun 26 08:25:04 UTC 2025


I'm also in favour.

I am suggesting some small naming changes, and I would point out one 
detail on which the committee may have opinions as to bikeshed colour, 
namely the module namespace to be used by the new packages. Teo proposes

   template-haskell-lift with module TemplateHaskell.Lift
   template-haskell-quasiquote with module TemplateHaskell.Quasiquoter

and I suggest slightly tweaking the latter to

   template-haskell-quasiquoter with module TemplateHaskell.QuasiQuoter

for consistency with the QuasiQuoter type name.

In both cases, the module name is in a new TemplateHaskell module 
hierarchy, whereas the existing template-haskell package uses the 
Language.Haskell.TH module hierarchy. I think a renaming is in order, 
because it gives a clear distinction between the historic API of the old 
template-haskell package and the cleaned up APIs of the new packages. 
Personally I like the new names, but I wanted to check others are also 
happy with them?

Cheers,

Adam



On 23/06/2025 08:55, Sebastian Graf wrote:
> Dear Committee,
> 
> With their proposal, Teo wants to reduce the maintenance cost for 
> packages (such as `containers`) that depend on `template-haskell` only 
> for comparatively stable APIs (`Lift`, quasiquoting), by carving out 
> separate packages for these stable APIs.
> These so-called "type (A) clients" constitute a considerable share of 
> all clients of `template-haskell`. It is a well-written proposal 
> outlining a simple solution with a great cost/benefit ratio.
> I recommend we accept it.
> 
> Cheers,
> Sebastian
> 
> Am Mo., 16. Juni 2025 um 09:17 Uhr schrieb Adam Gundry via 
> ghc-steering-committee <ghc-steering-committee at haskell.org 
> <mailto:ghc-steering-committee at haskell.org>>:
> 
>     Dear Committee,
> 
>     Teo Camarasu proposes to split out smaller, more coherent packages with
>     more stable interfaces from the template-haskell package:
> 
>     https://github.com/ghc-proposals/ghc-proposals/pull/696
>     <https://github.com/ghc-proposals/ghc-proposals/pull/696>
>     https://github.com/TeofilC/ghc-proposals/blob/wip/th-lift-and-quasiquote/proposals/0000-splitting-out-stable-interfaces-from-th.rst <https://github.com/TeofilC/ghc-proposals/blob/wip/th-lift-and-quasiquote/proposals/0000-splitting-out-stable-interfaces-from-th.rst>
> 
>     I'd like to nominate Sebastian as the shepherd.
> 
>     Please guide us to a conclusion as outlined in
>     https://github.com/ghc-proposals/ghc-proposals#committee-process
>     <https://github.com/ghc-proposals/ghc-proposals#committee-process>
> 
>     Cheers,
> 
>     Adam
> 

-- 
Adam Gundry, Haskell Consultant
Well-Typed LLP, https://www.well-typed.com/

Registered in England & Wales, OC335890
27 Old Gloucester Street, London WC1N 3AX, England



More information about the ghc-steering-committee mailing list