1993
DOI: 10.1145/173262.155112
|View full text |Cite
|
Sign up to set email alerts
|

Implementing type classes

Abstract: We describe the implementation of a type checker for the functional programming language Haskell that supports the use of type classes . This extends the type system of ML to support overloading (ad-hoc polymorphism) and can be used to implement features such as equality types and numeric overloading in a simple and general way. The theory of type classes is well understood, but the practical issues involved in the implementation of such systems have not received a … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
5
0

Year Published

2002
2002
2019
2019

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 9 publications
(5 citation statements)
references
References 6 publications
0
5
0
Order By: Relevance
“…The translation of type classes was a popular topic in the early 90's [10,25,2,35]. Since then, type classes have been employed in many applications way beyond their original purpose.…”
Section: Resultsmentioning
confidence: 99%
“…The translation of type classes was a popular topic in the early 90's [10,25,2,35]. Since then, type classes have been employed in many applications way beyond their original purpose.…”
Section: Resultsmentioning
confidence: 99%
“…There are some features we support indirectly by allowing them in the "opaque" regions of the datatype which Ghostbuster-generated code need not traverse, but we do not model explicitly in our core language. This currently includes type families (Chakravarty et al, 2005;Schrijvers et al, 2008) and typeclasses (Peterson & Jones, 1993;Hall et al, 1996).…”
Section: Runtime Type Representationmentioning
confidence: 99%
“…Passing a dictionary to perform selection at run-time is unnecessary. Full laziness and common subexpression elimination are techniques used to avoid repeated construction of dictionaries at run-time [2,3,27,28], but the optimization could be avoided a priori. This and related implementation issues are however outside of the scope of this paper and are left for further work.…”
Section: Semanticsmentioning
confidence: 99%