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

Unify elements and let-bindings with respect to type inference #112

Open
joshsh opened this issue Nov 14, 2023 · 1 comment
Open

Unify elements and let-bindings with respect to type inference #112

joshsh opened this issue Nov 14, 2023 · 1 comment

Comments

@joshsh
Copy link
Collaborator

joshsh commented Nov 14, 2023

Historically, Hydra has considered the name/term bindings which make up the top-level structure of the graph to be distinct from the name/term bindings found in let-expressions. In LambdaGraph, however, these are the same thing; a graph is essentially just a term which, if it happens to be a let-term, defines elements as its bindings. Type inference in Hydra does not yet reflect this unity, with elements and let-terms being the subject of completely different inference logic.

Along with this change, it may be possible to eliminate the need for user-provided type annotations on (many) mutually recursive elements and mutually recursive let-bindings, as well as the need for topological sorting of elements prior to inference.

See also #103.

joshsh added a commit that referenced this issue Nov 22, 2023
) and unifying inference for graphs and let-terms (resolves #112)
@joshsh
Copy link
Collaborator Author

joshsh commented Feb 29, 2024

Note: this is done in #103.

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

No branches or pull requests

1 participant