Skip to content

PmCheck: Record type constraints arising from existentials in `PmCoreCt`s

Sebastian Graf requested to merge wip/T17703 into master

In #17703 (closed) (a follow-up of !2192 (closed)), we established that contrary to my belief, type constraints arising from existentials in code like

data Ex where Ex :: a -> Ex
f _ | let x = Ex @Int 15 = case x of Ex -> ...

are in fact useful.

This commit makes a number of refactorings and improvements to comments, but fundamentally changes addCoreCt.core_expr to record the type constraint a ~ Int in addition to x ~ Ex @a y and y ~ 15.

Fixes #17703 (closed).

Merge request reports