import "github.com/wdamron/poly"
poly
provides inference for a polymorphic type-system with extensible records and variants.
The type-system is an extension of Hindley-Milner based on Daan Leijen's paper: Extensible Records with Scoped Labels (Microsoft Research).
The core of the implementation is based on an OCaml library by Tom Primozic.
- Extensible records and variants with scoped labels
- Generic type classes, constructor classes, and parametric overloading
- Limited/explicit (type class) subtyping with multiple inheritance
- Mutually-recursive (generic) function expressions within grouped let bindings
- Mutually-recursive (generic) data types
- Transparently aliased (generic) types
- Control-flow graph expressions
- Mutable references with the value restriction
- Size-bound type variables