haskell / haskell/core-libraries-committee

Deprecate base module `GHC.TopHandler`

Open
#434 4 comments 5 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 the module `GHC.TopHandler` from package `base`.

## Motivation
#299 proposes that a number of modules, including `GHC.TopHandler`, be deprecated. A search of Hackage indicates that uses of `GHC.TopHandler` occur within packages specific to GHC, and hence the module should not reside in `base`.

## Proposal

* Mark module `GHC.TopHandler` as deprecated in package `base`.

## Migration

The `ghc-internal` package is a more natural home for `GHC.TopHandler`. Existing clients of `GHC.TopHandler` 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.
* Moving this functionality out of package `base` will improve the stability of GHC.

## Impact

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

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

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the proposal and its companion merge request for the package base definition of GHC.TopHandler. Check the stated migration to ghc-internal and the impact on known clients. Done means the module is deprecated in base and existing clients can migrate as described.

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
Clearly specified
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.