Skip to content
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

Gospel injects fs_apply symbols in the typed AST. #430

Open
n-osborne opened this issue Dec 5, 2024 · 0 comments
Open

Gospel injects fs_apply symbols in the typed AST. #430

n-osborne opened this issue Dec 5, 2024 · 0 comments
Labels

Comments

@n-osborne
Copy link
Contributor

This issue has been raised offline by @mrjazzybread

This behaviour is observed when there is a function application where the term for the function is not a name.

For example, in this function definition:

(*@ function f (b : bool) : bool = (fun x -> x) b *)

Gospel type-checker will produce something like Tapp (fs_apply, [Tlambda ...; Tvar "b"]) for the body of the function.

In fact, it can't produce anything else in the current state of the typed AST as the application node (Tapp) in Tterm.term_node takes a lsymbol as its function argument.

We should make Tapp looks like:

  | Tapp of term * term list

and go from there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant