-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[spilling] weird spilling behaviour? #271
Comments
spilling in negative position is broken, it is not even clear what one wants.
should it be
? In your example |
Mh, I see this is not clear. Moreover, when use spilling in positive position, but inside an anonymous lambda-abstraction, pred p o:int.
p 5.
main :- std.forall [1] (x\ print {p}). Shouldn't we force a sigma inside the anonymous function for the result of In fact, I think spilling is very good, but I complain that, when miss-used, one can spend a lot of time to understand the bug in the code if he is not familiar with spilling |
hum, in that specific case it should make a sigma. Does it not? It may a bug because we don't know (yet) the types. I fully agree it is currently a hack. |
I post the code generated by the compiler
It seems that no sigma is produced but rather a |
I wrote sigma, but I meant "put the bound name in scope". |
is it wanted that:
main :- q {p 1} X => q 1 3.
is translated into:
main :- (p 1 A1 , q A1 A0) => q 1 3.
instead of
main :- p 1 A1 , (q A1 A0 => q 1 3).
FULL EXAMPLE:
The text was updated successfully, but these errors were encountered: