We present a type system for a language based on F-sub, which allows certain type annotations to be elided in actual programs. Local type inference determines types by a combination of type propagation and local constraint solving, rather than by global constraint solving. We refine the previously existing local type inference system of Pierce and Turner [ Local Type Inference, POPL 98] by allowing partial type information to be propagated. This is expressed by coloring types to indicate propagation directions. Propagating partial type information allows us to omit type annotations for the visitor pattern, the analogue of pattern matching in languages without sum types.
Martin Odersky, Yichen Xu, Aleksander Slawomir Boruch-Gruszecki
Guillaume André Fradji Martres
Lionel Emile Vincent Parreaux, Aleksander Slawomir Boruch-Gruszecki