Constraint-based type inference for FreezeML
FreezeML is a new approach to first-class polymorphic type inference that employs term annotations to control when and how polymorphic types are instantiated and generalised. It conservatively extends Hindley-Milner type inference and was first presented as an extension to Algorithm W. More modern t...
Gespeichert in:
Hauptverfasser: | , , , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | FreezeML is a new approach to first-class polymorphic type inference that
employs term annotations to control when and how polymorphic types are
instantiated and generalised. It conservatively extends Hindley-Milner type
inference and was first presented as an extension to Algorithm W. More modern
type inference techniques such as HM(X) and OutsideIn($X$) employ constraints
to support features such as type classes, type families, rows, and other
extensions. We take the first step towards modernising FreezeML by presenting a
constraint-based type inference algorithm. We introduce a new constraint
language, inspired by the Pottier/R\'emy presentation of HM(X), in order to
allow FreezeML type inference problems to be expressed as constraints. We
present a deterministic stack machine for solving FreezeML constraints and
prove its termination and correctness. |
---|---|
DOI: | 10.48550/arxiv.2207.09914 |