Sciweavers

ESOP
2000
Springer

Type Classes with Functional Dependencies

13 years 8 months ago
Type Classes with Functional Dependencies
Abstract. Type classes in Haskell allow programmers to define functions that can be used on a set of different types, with a potentially different implementation in each case. For example, type classes are used to support equality and numeric types, and for monadic programming. A commonly requested extension to support `multiple parameters' allows a more general interpretation of classes as relations on types, and has many potentially useful applications. Unfortunately, many of these examples do not work well in practice, leading to ambiguities and inaccuracies in inferred types and delaying the detection of type errors. This paper illustrates the kind of problems that can occur with multiple parameter type classes, and explains how they can be resolved by allowing programmers to specify explicit dependencies between the parameters. A particular novelty of this paper is the application of ideas from the theory of relational databases to the design of type systems.
Mark P. Jones
Added 24 Aug 2010
Updated 24 Aug 2010
Type Conference
Year 2000
Where ESOP
Authors Mark P. Jones
Comments (0)