haskell / haskell/core-libraries-committee

Deprecate and remove base modules GHC.GHCi and GHC.GHCi.Helpers

Open
#438 5 comments 4 reactions 0 assignees View on GitHub
Dominant language
Haskell
Stars
109
Forks
20
PR merge metrics
No merged PRs in 30d

Description

## Summary

We propose deprecating and removing the modules `GHC.GHCi` and `GHC.GHCi.Helpers` from package `base`.

## Motivation

A search of Hackage indicates that uses of `GHC.GHCi` and `GHC.GHCi.Helpers` occur within packages specific to GHC, and hence the module should not reside in `base`.

Moving this functionality out of package `base` will improve the stability of GHC.

## Proposal

* Mark modules `GHC.GHCi` and `GHC.GHCi.Helpers` as deprecated and remove from package `base`.

## Migration

Existing clients of of these modules can migrate by depending on package `ghc-internal`.

This migration is expected to be straightforward as it should only require updating package dependencies.

## Benefits
* A cleaner public API for `base` which should expose not GHC-specific functionality.
* Places modules `GHC.GHCi` and `GHC.GHCi.Helpers` within the package where their functionality naturally belongs.

## Compatibility

As known consumers are already GHC-specific packages, the impact is expected to be limited.
Following an appropriate period of deprecation, these modules can be removed from `base`.

## Companion merge request
This proposal is accompanied by the [this merge request](https://gitlab.haskell.org/ghc/ghc/-/merge_requests/16554).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by inspecting the GHC.GHCi and GHC.GHCi.Helpers modules in package base, then read companion merge request 16554 for the current implementation context. Check how these modules are exposed by base and how ghc-internal is referenced; done means the deprecation and eventual removal plan is reflected consistently, with affected consumers identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
compilers
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.