-
Notifications
You must be signed in to change notification settings - Fork 6
How functional is this? #1
Comments
No, it is not finished, and I am not aware of any others. That said, it is almost complete, if I remember correctly, and I do plan to return to it and fill in what's missing; the "structure" of the typechecker is complete. Strictly speaking, what is implemented is essentially (likely an unsound and incomplete) subset of Sound and Complete: most of the remaining work amounts to implementing the rest of the judgments/rules. All the functions in There are a few examples of expressions that can be typechecked, etc. here: |
As of October 2019 (now), is your description of the work yet to be done still accurate? Presuming so due to lack of commits since this thread started. |
I don't think anything changed in this repo, and I also haven't been able to find any complete implementation anywhere else. |
FYI the type system rules in the published 2019 version are sometimes different compared to the 2016 draft that was used for this implementation. The differences I noticed were primarily how principality is handled in some cases, as well as labels used for different rules. I discovered this while studying the implementation, trying to correlate the code to the 2019 paper and coming up short until I compared it to the 2016 draft, when some choices/labels started making more sense. This late 2018 version looks quite similar to the POPL 2019 one but includes appendices. |
@fluffynukeit correct, I haven't had time to work on this since unfortunately |
I wrote my own implementation here: https://github.com/fluffynukeit/scbt I believe it is complete, but I do need to add more test cases for finding implementation bugs (got one already) because the only implemented tests right now are lifted straight from the small example in the paper. It also needs a lot more user-friendliness polish. But generally I think all the rules are present. |
That's awesome! |
Is this implementation complete? If not, are you aware of any other implementations?
The text was updated successfully, but these errors were encountered: