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
The following program triggers an error due to an incomplete pattern match. I haven't
dug into why yet. The crucial part is that Card is a datatype which contains a computation.
--- start of standard stuff ---
on : {X -> {X -> Y} -> Y}
on x f = f x
data S = S (List Card)
data Card = Card { Unit }
interface State = get : S | put : S -> Unit
drawCardDeck : [State]Card
drawCardDeck! =
on get! { (S (cons top deck)) -> put (S deck); top }
main : { [Console]Unit }
main! = unit
The text was updated successfully, but these errors were encountered:
lucques
pushed a commit
to lucques/frankjnr
that referenced
this issue
Jun 28, 2017
…github.com/mpickering) at cmcl#11.
The bug was an occurring pattern match failure in the compiler code, very likely caused by a violation of an invariant. It turned out that implicit [£] arguments were not considered correctly (fixed now) which then must have violated this invariant.
Hi Matthew, having made some changes to the compiler (not related to this issue), the problem still occured in my working state 93f2559. I noticed that there was a bug in assigning (implicit, explicit) [£]'s to the definitions of S and Card, fixing this removed the issue: 4101e28
The same error came up again though, due to a bug in the unification algorithm, now fixed in 376bcf5 (I hope I did not overlook anything fixing it).
We'll probably pull in my branch soon to the master branch so the issue (at least this particular instance) can be seen as closed.
Cheers, Lukas
lucques
added a commit
to lucques/frankjnr
that referenced
this issue
Jun 29, 2017
…github.com/mpickering) at cmcl#11.
The bug was an occurring pattern match failure in the compiler code, very likely caused by a violation of an invariant. It turned out that implicit [£] arguments were not considered correctly (fixed now) which then must have violated this invariant.
The following program triggers an error due to an incomplete pattern match. I haven't
dug into why yet. The crucial part is that
Card
is a datatype which contains a computation.The text was updated successfully, but these errors were encountered: