A simple semantics for Haskell overloading

J. Garrett Morris

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract / Description of output

As originally proposed, type classes provide overloading and ad-hoc definition, but can still be understood (and implemented) in terms of strictly parametric calculi. This is not true of subsequent extensions of type classes. Functional dependencies and equality constraints allow the satisfiability of predicates to refine typing; this means that the interpretations of equivalent qualified types may not be interconvertible. Overlapping instances and instance chains allow predicates to be satisfied without determining the implementations of their associated class methods, introducing truly non-parametric behavior. We propose a new approach to the semantics of type classes, interpreting polymorphic expressions by the behavior of each of their ground instances, but without requiring that those behaviors be parametrically determined. We argue that this approach both matches the intuitive meanings of qualified types and accurately models the behavior of programs.
Original languageEnglish
Title of host publicationHaskell '14 Proceedings of the 2014 ACM SIGPLAN symposium on Haskell
Subtitle of host publicationGothenburg, Sweden
Number of pages12
ISBN (Print)978-1-4503-3041-1
Publication statusPublished - 3 Sept 2014
Event2014 ACM SIGPLAN symposium on Haskell - Goteborg, Sweden
Duration: 4 Sept 20145 Sept 2014


Conference2014 ACM SIGPLAN symposium on Haskell


Dive into the research topics of 'A simple semantics for Haskell overloading'. Together they form a unique fingerprint.

Cite this