This problem is two-fold. On the one hand, showX prints an "X" on undefined errors:
>>> printX @Int undefined
X
>>> printX @Int (errorX "abc")
X
>>> X
<Data constructor not in scope>
But, undefined is clearly not equal to X! So ideally this would look like:
>>> printX @Int undefined
undefined
>>> printX @Int (errorX "abc")
undefined
>>> undefined
<XException>
Like #1776, the Vec instance of ShowX yield invalid Haskell:
>>> printX @(Vec 2 Int) (1 :> 2 :> Nil)
<1,2>
Marked enhancement instead of bug as ShowX is a lawless class.
This problem is two-fold. On the one hand,
showXprints an"X"on undefined errors:But,
undefinedis clearly not equal toX! So ideally this would look like:Like #1776, the
Vecinstance ofShowXyield invalid Haskell:Marked
enhancementinstead ofbugasShowXis a lawless class.