You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is essentially the pay-off of the discussion at the bottom of page 8 of constrained type families:
We can add the instance
instance Loopy ⇒ Loopy where
type Loop = [Loop]
but it is clear that the Loopy constraint cannot be satisfied. Thus, any attempt to use this Loop
equation must be guarded by an unsatisfiable Loopy constraint, and so cannot compromise type
safety.
If you were to add that instance, then instance solving could (hypothetically) diverge—as it would attempt to solve Loopy using the instance Loopy ⇒ Loopy forever. With our implementation, we're accomplishing the same thing.
This is kinda what I mean when I say that we have all the pain of CTF, but none of the payoff. We expect Loop to be unusuable in our system, and indeed it is.........
type checker loops while elaborating of type signature of
qqqq
.The text was updated successfully, but these errors were encountered: