#### DMCA

## Type classes in Haskell (1996)

### Cached

### Download Links

- [www.di.unipi.it]
- [www.cse.iitb.ernet.in:8000]
- [ftp.dcs.glasgow.ac.uk]
- [www.esw.inesc.pt]
- DBLP

### Other Repositories/Bibliography

Venue: | ACM Transactions on Programming Languages and Systems |

Citations: | 135 - 6 self |

### Citations

1706 | The Definition of Standard ML - Milner, Tofte, et al. - 1997 |

1469 | The essence of functional programming
- Wadler
- 1992
(Show Context)
Citation Context ... and class declarations. Each of those papers emphasises one aspect or another of the theory, while this paper stresses what we learned from practice. At the same time, these rules and thesmonad-based=-=[Wad92]-=- implementation they support provide a clean, `high-level' speci cation for the implementation of a typechecker, unlike more implementation oriented papers [HaBl89, Aug93, Jon92b]. A further contribut... |

1065 | A theory of type polymorphism in programming
- Milner
- 1978
(Show Context)
Citation Context ...ne for equality (type variables that range only over equality types). The committee adopted a completely new technique, based on a proposal by Wadler, which extends the familiar Hindley-Milner system =-=[Mil78]-=- with type classes. Type classes provide a uniform solution to overloading, including providing operations for equality, arithmetic, and string conversion. They generalise the idea of equality types f... |

592 |
The Implementation of Functional Programming Languages
- Jones, L
- 1987
(Show Context)
Citation Context ...rather than at every subterm. ffl It eases subsequent transformation. A standard and productive technique for compiling functional languages is to apply various transformations at intermediate phases =-=[Pey87]-=-. With annotations, each transformation must carefully preserve annotations on all subterms and add new annotations where required. With polymorphic lambda calculus, the usual transformation rules -- ... |

414 | Towards a theory of type structure - Reynolds - 1974 |

398 | How to make ad-hoc polymorphism less ad hoc
- Wadler, Blott
- 1989
(Show Context)
Citation Context ... translation� but there appears to be no alternative. (Note, however, that [Kae88] does give a direct semantics for a slightly simpler form of overloading.) The original type inference rules given in =-=[WB89]-=- were deliberately rather sparse, and were not intended to re ect the Haskell language precisely. As a result, there has been some confusion as to precisely how type classes in Haskell are de ned. 1.1... |

262 | Principal type schemes for functional programs - Damas, Milner - 1982 |

195 | A system of constructor classes: overloading and implicit higher-order polymorphism - Jones - 1995 |

164 |
A Non-Strict Functional Language with Polymorphic Types
- Turner
- 1985
(Show Context)
Citation Context ...e committee's surprise, it emerged that there was no standard way toprovide overloaded operations such as equality (==), arithmetic (+), and conversion to a string (show). Languages such as Miranda 1 =-=[Tur85]-=- and Standard ML [MTH90, MT91] o er di ering solutions to these problems. The solutions di er not only between languages, but within a language. Miranda uses one technique for equality (it is de ned o... |

116 | The principal type scheme of an object in combinatory logic - Hindley - 1969 |

97 | A theory of qualified types - Jones - 1992 |

85 | Basic polymorphic type checking
- Cardelli
- 1987
(Show Context)
Citation Context ...89]. For a comparison of the Hindley-Milner and Girard-Reynolds systems, see the excellent summary by Reynolds [Rey85]. For a practicum on Hindley-Milner type inference, see the tutorials by Cardelli =-=[Car87]-=- or Hancock [Han87]. The remainder of this paper is organised as follows. Section 2 introduces type classes and our translation method. Section 3 describes the various notations used in presenting the... |

77 | Three Approaches to Type Structure
- Reynolds
(Show Context)
Citation Context ... cursory; for further motivating examples, see the original paper by Wadler and Blott [WB89]. For a comparison of the Hindley-Milner and Girard-Reynolds systems, see the excellent summary by Reynolds =-=[Rey85]-=-. For a practicum on Hindley-Milner type inference, see the tutorials by Cardelli [Car87] or Hancock [Han87]. The remainder of this paper is organised as follows. Section 2 introduces type classes and... |

46 | Implementing Haskell overloading - Augustsson - 1993 |

42 |
Parametric Type Classes
- Chen, Hudak, et al.
- 1992
(Show Context)
Citation Context ...asses includes Nipkow and Snelting [NS91], Volpano and Smith [VS91], Jones [Jon92a, Jon93], Nipkow and Prehofer [NP93], Odersky and Laufer [OdLa91], Laufer [Lau92, Lau93], and Chen, Hudak and Odersky =-=[CHO92]-=-. The paper presents a source language (lambda calculus with implicit typing and with overloading) and a target language (polymorphic lambda calculus with explicit typing and without overloading). The... |

36 | Type Checking Type Classes
- Nipkow, Prehofer
- 1993
(Show Context)
Citation Context ...rk by Rouaix [Rou90] and Comack and Wright [CW90], and work directly inspired by type classes includes Nipkow and Snelting [NS91], Volpano and Smith [VS91], Jones [Jon92a, Jon93], Nipkow and Prehofer =-=[NP93]-=-, Odersky and Laufer [OdLa91], Laufer [Lau92, Lau93], and Chen, Hudak and Odersky [CHO92]. The paper presents a source language (lambda calculus with implicit typing and with overloading) and a target... |

33 |
Type classes and overloading resolution via order-sorted unification
- Nipkow, Snelting
- 1991
(Show Context)
Citation Context ... feature, and has provoked much discussion. There has been closely related work by Rouaix [Rou90] and Comack and Wright [CW90], and work directly inspired by type classes includes Nipkow and Snelting =-=[NS91]-=-, Volpano and Smith [VS91], Jones [Jon92a, Jon93], Nipkow and Prehofer [NP93], Odersky and Laufer [OdLa91], Laufer [Lau92, Lau93], and Chen, Hudak and Odersky [CHO92]. The paper presents a source lang... |

30 | Interprétation functionelle et élimination des coupures dans l’arithmétique d’ordre supérieure - Girard - 1972 |

22 |
Safe Run-time Overloading
- Rouaix
- 1990
(Show Context)
Citation Context ...ar proposal was made independently by Kaes[Kae88]. The type system of Haskell is certainly its most innovative feature, and has provoked much discussion. There has been closely related work by Rouaix =-=[Rou90]-=- and Comack and Wright [CW90], and work directly inspired by type classes includes Nipkow and Snelting [NS91], Volpano and Smith [VS91], Jones [Jon92a, Jon93], Nipkow and Prehofer [NP93], Odersky and ... |

15 | On the Complexity of ML Typability with Overloading - Volpano, Smith - 1991 |

12 |
A Nova Classe
- Neri, ed
- 2008
(Show Context)
Citation Context ...program consists of a set of bindings, which maybemutually recursive, followed by an expression. The class types appearing in the translation denote monotypes� a formal translation of them appears in =-=[HaHaPJW]-=-.sprogram ! letrec bindset in exp Program bindset ! var1 = exp 1� :::� varn = exp n Binding set (n 0) exp ! var Variable j pat: exp Function abstraction j exp exp 0 Function application j let var = ex... |

8 |
Coherence for quali ed types
- Jones
- 1993
(Show Context)
Citation Context ...e here. Unlike [WB89], it is not assumed that each class has exactly one operation. Unlike [NS91], it is not assumed that the intersection of every pair of classes must be separately declared. Unlike =-=[Jon92a]-=-, we deal directly with instance and class declarations. Each of those papers emphasises one aspect or another of the theory, while this paper stresses what we learned from practice. At the same time,... |

7 |
Type-dependent parameter inference
- Cormack, Knight
- 1990
(Show Context)
Citation Context ...ntly by Kaes[Kae88]. The type system of Haskell is certainly its most innovative feature, and has provoked much discussion. There has been closely related work by Rouaix [Rou90] and Comack and Wright =-=[CW90]-=-, and work directly inspired by type classes includes Nipkow and Snelting [NS91], Volpano and Smith [VS91], Jones [Jon92a, Jon93], Nipkow and Prehofer [NP93], Odersky and Laufer [OdLa91], Laufer [Lau9... |

7 | A static semantics for Haskell
- Jones, Wadler
- 1992
(Show Context)
Citation Context ... in Haskell. These rules arose from a practical impetus: our attempts to build a compiler for Haskell. It presents a simpli ed subset of the rules we derived. The full set of rules is given elsewhere =-=[PW91]-=-, and contains over 30 judgement forms and over 100 rules, which dealwithmany additional syntactic features such astype declarations, pattern matching, and list comprehensions. Wehave been inspired in... |

6 |
Type classes are signatures of abstract types
- Odersky, Laufer
- 1991
(Show Context)
Citation Context ...mack and Wright [CW90], and work directly inspired by type classes includes Nipkow and Snelting [NS91], Volpano and Smith [VS91], Jones [Jon92a, Jon93], Nipkow and Prehofer [NP93], Odersky and Laufer =-=[OdLa91]-=-, Laufer [Lau92, Lau93], and Chen, Hudak and Odersky [CHO92]. The paper presents a source language (lambda calculus with implicit typing and with overloading) and a target language (polymorphic lambda... |

5 |
Parametric Polymorphism
- Kaes
- 1988
(Show Context)
Citation Context ...: fcvh, kh, simonpj, wadlerg@dcs.glasgow.ac.uk 1 Miranda is a trademark of Research Software Limited.sdescribed by Wadler and Blott [WB89, Blo91], and a similar proposal was made independently by Kaes=-=[Kae88]-=-. The type system of Haskell is certainly its most innovative feature, and has provoked much discussion. There has been closely related work by Rouaix [Rou90] and Comack and Wright [CW90], and work di... |

4 | Type Classes - Blott - 1991 |

4 | The De nition of Standard ML.MIT - Milner, Tofte, et al. - 1990 |

3 | Implementing Haskell Type Classes - Hammond, Blott - 1989 |

2 | Efficient Implementation of Type Class Overloading - Jones - 1992 |

2 |
On the complexity ofMLtypability with overloading
- Nipkow, Volpano, et al.
- 1991
(Show Context)
Citation Context ... much discussion. There has been closely related work by Rouaix [Rou90] and Comack and Wright [CW90], and work directly inspired by type classes includes Nipkow and Snelting [NS91], Volpano and Smith =-=[VS91]-=-, Jones [Jon92a, Jon93], Nipkow and Prehofer [NP93], Odersky and Laufer [OdLa91], Laufer [Lau92, Lau93], and Chen, Hudak and Odersky [CHO92]. The paper presents a source language (lambda calculus with... |

1 |
Chapters 8 and 9
- Hancock
- 1987
(Show Context)
Citation Context ...on of the Hindley-Milner and Girard-Reynolds systems, see the excellent summary by Reynolds [Rey85]. For a practicum on Hindley-Milner type inference, see the tutorials by Cardelli [Car87] or Hancock =-=[Han87]-=-. The remainder of this paper is organised as follows. Section 2 introduces type classes and our translation method. Section 3 describes the various notations used in presenting the inferences rules. ... |