-
Notifications
You must be signed in to change notification settings - Fork 3
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
Generalized algebraic data types (indexed inductive families) #11
Comments
Is this about defining types like |
I found minitt can not do this, |
Yes, sized vector is a well-known instance of GADT. |
Do you have overlapping pattern (and confluence check) support? I am quite interested. |
Looking forward to your implementations. |
You can actually implementsome GADTs using dependent pi/sigma types (which means -- yeah, we can do this in minitt). I remember there's a page on Agda wiki, I'm trying to find it. |
Only Jesper's paper is found: https://jesper.sikanda.be/files/vectors-are-records-too.pdf |
I am not sure about the meaning of overlapping pattern. The use of pattern and implementation of checkers are faithful to original minitt paper. |
Thanks for the info. |
Note: the source code hosted on one author's website is different from the paper appendix. In the paper appendix there are standalone Normal Form type for |
I was talking about GKminitt.pdf |
yes, "A simple type-theoretic language: Mini-TT" |
I defined standalone Normal Form type. |
This is a bad title. It's very complicated since it has chosen to do readback+syntactic comparison instead of the straightforward conversion check. |
We have a fork in this organization. You can take a look. |
I thought alpha conversion in the paper is handled by renaming all bound variables in readback functions. |
I also have some ideas about implementing record type and subtype too. |
Note: |
Do you plan to implement contravariance for pi types' parameters? I heard it's different from non dependent type systems, but the person told me this didn't explain the reason. |
The cause of the difference is that you're adding a contravaraint-typed variable to the context during typechecking. You want to keep the "this variable may be of a different type" in |
Btw, if you can provide a bnf/peg-formatted grammar definition of your language, an SVG icon for it (optional) and the scoping rule (described using natural language), I am willing to add your language support to intellij-dtlc (can be found in JetBrains plugin Marketplace, named "Dependently-Typed Lambda Calculus"). But I cannot guarantee a finishing time. |
I talk too much :) |
No description provided.
The text was updated successfully, but these errors were encountered: