Description

The GHC.Exts module exports functions ​breakpoint and breakpointCond. Right now they are no-ops, but apparently at some point in the past could be used to set breakpoints programmatically. From my reading of the source code, this feature was removed (either accidentally or on purpose) when the implementation of breakpoints was reworked.

To make them work, you would need to treat them as magic identifiers that get recognised by the desugarer and replaced with actual breakpoints. This probably wouldn't be too hard. The module that inserts breakpoints is compiler/deSugar/Coverage.hs, and what we want to do is something similar to the way that {-# SCC #-} is handled, in compiler/deSugar/DsExpr.lhs.