archives

A New Kind of Type System

I've been working on this note to describe the type system I've been working on that collects many of the ideas I've been working on (see here, here and here, and here). Now that I actually have something fairly complete, feedback would be appreciated. I'm currently implementing this in my live programming work and it will hopefully be in my next prototype, though the ideas are relatively unrelated so far. Abstract:

This note introduces a novel type system that is static, annotation free, and object-oriented with class-like mixin-style traits. Inference in this YinYang type system diverges significantly from Hindley-Milner by computing graphs of assignment relationships rather than principal types, hiding values and preserving connectivity in encapsulated graphs. Inferred types are then useful not only for checking purposes, but also in allowing code completion to specify program functionality in a relaxed order.

Again, the note is hosted here on GitHub.