Use an empty data type in TTG extension constructors (#15247)
To avoid having to panic
any time a TTG extension constructor is
consumed, this MR introduces an uninhabited NoExtCon
type and uses
that in every extension constructor's type family instance where it
is appropriate. This also introduces a noExtCon
function which
eliminates a NoExtCon
, much like Data.Void.absurd
eliminates
a Void
.
I also renamed the existing NoExt
type to NoExtField
to better
distinguish it from NoExtCon
. Unsurprisingly, there is a lot of
code churn resulting from this.
Bumps the Haddock submodule. Fixes #15247 (closed).
Edited by Ryan Scott