Title
Terminating constraint set satisfiability and simplification algorithms for context-dependent overloading.
Abstract
Algorithms for constraint set satisfiability and simplification of Haskell type class constraints are used during type inference in order to allow the inference of more accurate types and to detect ambiguity. Unfortunately, both constraint set satisfiability and simplification are in general undecidable, and the use of these algorithms may cause non-termination of type inference. This paper presents algorithms for these problems that terminate on any given input, based on the use of a criterion that is tested on each recursive step. The use of this criterion eliminates the need of imposing syntactic conditions on Haskell type class and instance declarations in order to guarantee termination of type inference in the presence of multi-parameter type classes, and allows program compilation without the need of compiler flags for lifting such restrictions. Undecidability of the problems implies the existence of instances for which the algorithm incorrectly reports unsatisfiability, but we are not aware of any practical example where this occurs.
Year
DOI
Venue
2013
10.1007/s13173-013-0107-9
J. Braz. Comp. Soc.
Keywords
Field
DocType
Haskell, Constraint set satisfiability, Constraint set simplification, Termination
Data structure,Inference,Computer science,Satisfiability,Algorithm,Theoretical computer science,Type inference,Compiler,Haskell,Recursion,Undecidable problem
Journal
Volume
Issue
ISSN
19
4
1678-4804
Citations 
PageRank 
References 
1
0.37
7
Authors
3
Name
Order
Citations
PageRank
Rodrigo Ribeiro131.11
Carlos Camarão2175.74
Lucília Figueiredo3154.33