2014/05/14 by Gregory J. Duck, GREGORY J. DUCK, Remy Haemmerle +3
Computer Science · #Compiler #Confluence #Constraint Satisfaction and Optimization #Haskell #Inference #Logic, programming, and type systems #Model-Driven Software Engineering Techniques #Rendering (computer graphics) #Type (biology) #Type inference #cs.PL
paper · pdf · doi:10.1017/s1471068414000246
published as Theory and Practice of Logic Programming 14 (2014) 619-632
arxiv created 2014/05/14 · openalex publication_date 2014/07/01 · openalex created_date 2016/06/24 · arxiv updated 2020/02/19 · openalex updated_date 2026/08/05
Abstract We consider the application of Constraint Handling Rules (CHR) for the specification of type inference systems, such as that used by Haskell. Confluence of CHR guarantees that the answer provided by type inference is correct and consistent. The standard method for establishing confluence relies on an assumption that the CHR program is terminating. However, many examples in practice give rise to non-terminating CHR programs, rendering this method inapplicable. Despite no guarantee of termination or confluence, the Glasgow Haskell Compiler (GHC) supports options that allow the user to proceed with type inference anyway, e.g. via the use of the UndecidableInstances flag. In this paper we formally identify and verify a set of relaxed criteria, namely range-restrictedness , local confluence , and ground termination , that ensure the consistency of CHR-based type inference that maps to potentially non-terminating CHR programs.