Skip to content

Replace '?callStack' implicit param constraint with HasCallStack in GHC.Internal.Exception.throw

In Base 4.20.0 the ability to pass callstacks with exceptions was introduced. However, in the new constraint on Control.Exception.throw that was therefore added, the internal ?callStack :: CallStack implicit parameter syntax, rather than the 'public-by-convention' HasCallStack type alias was used: image Link to base 4.20.0's Control.Exception.throw Haddock documentation

This MR fixes this, by using the HasCallStack name instead. Besides hiding the implementation detail of HasCallStack (currently) being implemented using an implicit parameter, this ensures that the similarity between normal throw and throwIO is clear to a documentation reader.

As this change only replaces a constraint with a type alias of that same constraint, it should change how this shows up in the Haddock documentation, but not change any behaviour of GHC or base in any way.

Edited by Marten Wijnja

Merge request reports