Skip to content

Use an empty data type in TTG extension constructors (#15247)

Ryan Scott requested to merge RyanGlScott/ghc:wip/T15247 into master

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

Merge request reports