github.com/wdamron/poly (go): 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 implementation is based on an OCaml library by Tom Primozic.  Supported Features:  Links:  extensible_rows2 (OCaml implementation): https://github.com/tomprimozic/type-systems/tree/master/extensible_rows2  Extensible Records with Scoped Labels (Leijen, 2005): https://www.microsoft.com/en-us/research/publication/extensible-records-with-scoped-labels/  Efficient Generalization with Levels (Oleg Kiselyov): http://okmij.org/ftp/ML/generalization.html#levels  Hindley-Milner type system: https://en.wikipedia.org/wiki/Hindley–Milner_type_system  Value restriction: https://en.wikipedia.org/wiki/Value_restriction
Keywords: algorithm-w|hindley-milner|type-inference|type-system|type-theory