2007
DOI: 10.1017/s0956796806006137
|View full text |Cite
|
Sign up to set email alerts
|

Understanding functional dependencies via constraint handling rules

Abstract: Functional dependencies are a popular and useful extension to Haskell style type classes. We give a reformulation of functional dependencies in terms of Constraint Handling Rules (CHRs). In previous work, CHRs have been employed for describing user-programmable type extensions in the context of Haskell style type classes. Here, we make use of CHRs to provide for the first time a concise result that under some sufficient conditions, functional dependencies allow for sound, complete and decidable type inference.… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
78
0

Year Published

2010
2010
2016
2016

Publication Types

Select...
5
3

Relationship

2
6

Authors

Journals

citations
Cited by 62 publications
(78 citation statements)
references
References 19 publications
0
78
0
Order By: Relevance
“…Indeed, the improvement rules of Section 5 correspond precisely to the improvement rules for functional dependencies (Sulzmann et al 2007). …”
Section: Functional Dependenciesmentioning
confidence: 91%
“…Indeed, the improvement rules of Section 5 correspond precisely to the improvement rules for functional dependencies (Sulzmann et al 2007). …”
Section: Functional Dependenciesmentioning
confidence: 91%
“…The reason is that the Paterson conditions for termination of type class instances [12,Def. 11] already require a strict size decrease of type terms from the instance head to individual constraints in the instance context.…”
Section: Definition 3 (Class Instance Compatible Termination Condition)mentioning
confidence: 99%
“…Despite thorough analysis (Sulzmann et al 2007b), functional dependencies remain a controversial feature: Chakravarty et al (2005a) argues that associated types provide much of the functionality but cause less complexity in the type system.…”
Section: Functional Dependenciesmentioning
confidence: 99%
“…Conversely, one then faces the problem of undecidability of the conceptchecking algorithm. In Haskell indeed, solving a set of constraints given a set of rules (given by modellings) can be potentially non-terminating: using a parametric modelling that has non-trivial assertions can make the set of constraints bigger, and if the rule can be applied again, the solver will never converge (Sulzmann et al 2007b). In C++, non-termination can also occur in a corresponding situation.…”
Section: Free-form Modellingmentioning
confidence: 99%