-
Notifications
You must be signed in to change notification settings - Fork 235
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
val declaration + let works differently from the new let (x:t) : M b
notation
#517
Comments
Also observing that the notation has a negative impact on extraction. This version extracts fine:
to
However, this version gets the arity of
Here it is after extraction:
|
let (x:t) : M b
notation
The original problem should be improved now. However, the extraction problem remains. Also, some very disturbing pathologies remain. The combination of pattern matching notation in the arguments of a function and this inline annotation of the result type-and-effect is badly broken. This program fails to verify:
Whereas this one is fine:
Astoundingly, in the first example, the |
I've fixed a few things, eliminating all the known symptoms of this bug.
The combination of pattern matching on
Closing it. Hopefully this will not raise its ugly head anymore. Fingers crossed. |
In the following snippet, the first
add
function typechecks, but not the second while I would expect the two to be equivalent.On
add'
F* returnstest.fst(8,39-11,6): could not prove post-condition
The text was updated successfully, but these errors were encountered: