Buy-in for technical proposal 47 which affect GHC devs

Ben Gamari ben at
Tue Mar 21 17:16:10 UTC 2023

Laurent P. René de Cotret <laurent.decotret at> writes:

> Dear GHC developers,
> In recent weeks, John Ericson has fine-tuned a Haskell Foundation
> Technical Proposal to split `base` into two libraries: `ghc-base` and
> `base`, the latter simply re-exporting everything for `ghc-base` (for
> now). You can read about the rationale and specifics more in details
> in the proposal itself:
> Note that this proposal has recently been streamlined into a form
> which is more focused than its initial state, and might be worth a
> re-read.
> The Haskell Foundation Technical Working Group has reached a consensus
> that this work will benefit the Haskell community. Moreover, the
> Haskell Foundation has agreed to spend some of its resources to
> implement this proposal, which would start by ensuring the completion
> of MR7898 (
> This work will affect GHC developers. Therefore, the Technical Working
> Group would like to get buy-in from the GHC developers before formally
> accepting this proposal.
Hi Laurent,

In general I am quite supportive of this proposal. I have discussed the
idea with John on several occassions and agree that separating the
implementation of `base` from its user-facing interfaces with a package
boundary would simplify life for both users and GHC's maintainers (c.f.

I also threw together my own implementation of the idea in a few hours
some weeks back (having forgotten about John's effort); this can be
found in the wip/ghc-base branch [2]. From that experience I have no
doubts that this idea is feasible. The only issues that I am slightly
unsure of are:

 * whether/how to prevent `ghc-base` references from seeping into error

 * which interfaces should be re-exposed from `base`. In [2] we propose
   that a fair number of interfaces be marked as GHC-internal.
   Those which are marked [3] as "hidden" should likely be 
   exposed only via `ghc-base`. However, for compatibility reasons we
   may decide to continue exporting some subset of "internal" modules
   (with frozen export lists) from `base`.

Regardless, I am very happy to see this split move forward and am
grateful to John for his work in this direction.


- Ben

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 905 bytes
Desc: not available
URL: <>

More information about the ghc-devs mailing list