We present a new method for GADT type inference that improves the precision of previous approaches. In particular, our approach accepts more type-correct programs than previous approaches when they do not employ type annotations. A side benefit of our approach is that it can detect a wide range of runtime errors that are missed by previous approaches. Our method is based on the idea to represent type refinements in pattern-matching branches by choice types, which facilitate a separation of the typing and reconciliation phases and thus support case expressions. This idea is formalized in a type system, which is both sound and a conservative extension of the classical Hindley- Milner system. We present the results of an empirical evaluation that compares our algorithm with previous approaches.
CITATION STYLE
Chen, S., & Erwig, M. (2016). Principal type inference for GADTs. ACM SIGPLAN Notices, 51(1), 416–428. https://doi.org/10.1145/2837614.2837665
Mendeley helps you to discover research relevant for your work.