• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Named Instances for Haskell Type Classes

Cached

  • Download as a PDF
  •  
  • Download as a PS

Download Links

  • [www.informatik.uni-bonn.de]
  • [www.cs.uni-bonn.de]
  • [www.informatik.uni-bonn.de]

  • Save to List
  • Add to Collection
  • Correct Errors
  • Monitor Changes
by Wolfram Kahl, et al.
Citations:16 - 0 self
  • Summary
  • Active Bibliography
  • Co-citation
  • Clustered Documents
  • Version History

BibTeX

@MISC{Kahl_namedinstances,
    author = {Wolfram Kahl and et al.},
    title = {Named Instances for Haskell Type Classes},
    year = {}
}

Years of Citing Articles

Bookmark

citeulike Connotea Bibsonomy Del.icio.us Digg Reddit

OpenURL

 

Abstract

Although the functional programming language Haskell has a powerful type class system, users frequently run into situations where they would like to be able to define or adapt instances of type classes only after the remainder of a component has been produced. However, Haskell's type class system essentially only allows late binding of type class constraints on free type variables, and not on uses of type class members at variable-free types. In the current paper we propose a language extension that enhances the late binding capabilities of Haskell type classes, and provides more flexible means for type class instantiation. The latter is achieved via named instances that do not participate in automatic context reduction, but can only be used for late binding. By combining this capability with the automatic aspects of the Haskell type class system, we arrive at an essentially conservative extension that greatly improves flexibility of programming using type classes and opens up new structuring principles for Haskell library design. We exemplify our extension through the sketch of some applications and show how our approach could be used to explain or subsume other language features as for example implicit parameters. We present a typed λ-calculus for our extension and provide a working prototype type checker on the basis of Mark Jones' "Typing Haskell in Haskell".

Citations

1497 The Definition of Standard ML - Milner, Tofte, et al. - 1990
208 Manifest types, modules, and separate compilation - Leroy - 1994
138 Type classes with functional dependencies - Jones - 2000
114 Derivable type classes - Hinze, Jones - 2000
96 Applicative functors and fully transparent higher-order modules - Leroy - 1995
84 A new approach to generic functional programming - Hinze - 2000
84 Type classes: an exploration of the design space - Jones, Jones, et al. - 1997
70 Implicit parameters: Dynamic scoping with static types - Lewis, Launchbury, et al. - 2000
64 Functional programming with overloading and higher-order polymorphism - Jones - 1995
63 Using parameterized signatures to express modular structure - Jones - 1996
56 First-Class Structures for Standard ML - Russo
54 Types for Modules - Russo
51 A semantics for higher-order functors - MacQueen, Tofte - 1994
49 Typing Haskell in Haskell - Jones - 1999
39 A generic programming extension for Haskell - Hinze - 1999
8 A static semantics for Haskell - Jones, Wadler - 1992
5 Hugs 98 — A functional programming system based - Jones, Peterson - 1999
4 Exploring (finite) Relation Algebras using Tools written in Haskell - Kahl, Schmidt - 2000
1 Named instances with class in Haskell. Diploma thesis, Fakultät für Informatik, Universität der Bundeswehr München, 2001. Forthcoming. See also: http://ist.unibw-muenchen.de/Haskell/NamedInstances - Scheffczyk
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University