The code is available on github.
| Feature | Type syntax |
|---|---|
Basic Types S, T |
|
| top | top |
| bottom | bot |
| intersection | S & T |
| union | S | T |
| negation | ~T |
| nominal tag1 | #A |
| record | { a: S, b: T } |
| function | S -> T |
| variable | 'a |
| Input format | |
| type alias | 'a == T |
| subtyping relation | S <: T |
| subtyping problem |
'a == {a: 'a}
|
#A is a supertag of #AA, #AB, etc.