- Notifications
You must be signed in to change notification settings - Fork2
Hindley-Milner type system with extensible records and variants, implemented in Go
License
NotificationsYou must be signed in to change notification settings
wdamron/poly
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
import"github.com/wdamron/poly"
poly
provides inference for a polymorphic type-system with extensible records and variants.
The type-system is an extension ofHindley-Milner based on Daan Leijen's paper:Extensible Records with Scoped Labels (Microsoft Research).
The core of the implementation is based on anOCaml 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 thevalue restriction
- Size-bound type variables