-
Notifications
You must be signed in to change notification settings - Fork 78
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
Support for user-defined ADTs #225
Comments
Custom ADTs have now been added to the language. The ADTs are checked and added in the new phase There is still no support for inductive or polymorphic ADTs, and there doesn't seem to be much point to having polymorphic ADTs without inductive ones, so inductive ones should be added first. The intention is for The issue is currently blocked by issue #179, because without caching of typechecked libraries we have nowhere to place the generated recursion principles. |
We should restrict inductive ADTs to be uniformly recursive. This would prevent the user from defining types such as
Restricting inductive ADTs to be uniform makes it much, much easier to generate fold functions for the types, not to mention making typechecking easier. |
The subtyping relation implemented by
Type variables in contravariant positions either needs to not be allowed, or needs to be properly implemented in |
The text was updated successfully, but these errors were encountered: