-
Notifications
You must be signed in to change notification settings - Fork 8
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
Annotated function types with more than 3 parameters fail in non-interactive mode #234
Comments
According to |
Ouch. Looks like a name clash right? I remember some discussions about F*'s gensym and Pulse's gensym clashing, but I forget the exact details. Probably the stabler and smaller F* gensym'd numbers now clash more easily? |
I think you're right about the name clash. Making the Pulse vars start at 10000 lets the example pass: diff --git a/src/checker/Pulse.Typing.Env.fst b/src/checker/Pulse.Typing.Env.fst
index c3fad92f1..c5ae01cd9 100644
--- a/src/checker/Pulse.Typing.Env.fst
+++ b/src/checker/Pulse.Typing.Env.fst
@@ -106,7 +106,7 @@ let rec max (bs:list (var & typ)) (current:var)
let fresh g =
match g.bs with
- | [] -> 1
+ | [] -> 10000
| (x, _)::bs_rest ->
let max = max bs_rest x in
max + 1 I'm not sure where we get the F* gensym variables from, though. |
I think that was the wrong question. The question is where F* is getting the Pulse gensym variables from and that is easy to answer. We're running the F* type-checker on |
This is an interesting one:
w:d
.The text was updated successfully, but these errors were encountered: