skip to main content
10.1145/165180.165190acmconferencesArticle/Chapter ViewAbstractPublication PagesfpcaConference Proceedingsconference-collections
Article
Free Access

A system of constructor classes: overloading and implicit higher-order polymorphism

Published:01 July 1993Publication History
First page image

References

  1. 1.H. Barendregt. Introduction to generalized type systems. Journal of Functional Programming, volume 1, part 2, 1991.Google ScholarGoogle ScholarCross RefCross Ref
  2. 2.V. Breazu-Tannen, T. Coquand, C.A. Gunter and A. Scedrov. Inheritance and coercion. In {EEE Symposium on Logic in Computer Science, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.K. Chen, P. Hudak, and M. Odersky. Parametric type classes (Extended abstract). A CM conference on LISP and Functional Programming, San Francisco, Califorvia, June 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.L. Damas and R. Milner. Principal type schemes for functional programs, in 8th Annual A CM Symposium on Principles of Programming languages, 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.P. Hudak and J. Fasel. A gentle introduction to Haskell. A CM SIGPLAN notices, 27, 5, May 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.P. Hudak, S.L. Peyton Jones and P. Wadler (eds.). Report on the programming language Haskell, version 1.2. A CM SIGPLAN notices, 27, 5, May 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.M.P. Jones. A theory of qualified types. In European symposium on programming. Springer Verlag LNCS 582, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.M.P. Jones. Qualified types: Theory and Practice. D. Phil. Thesis. Programming Research Group, Oxford University Computing Laboratory. July 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.M.P. Jones. Programming with constructor classes (preliminary summary). In Draft Proceedings of the Fifth Annual Glasgow Workshop on Functional Programming, Ayr, Scotland, July 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.E. Moggi. Computational lambda-calculus and monads. IEEE Symposium on Logic in Computer Science, Asilomar, California, June 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.J.A. Robinson. A machine-oriented logic based on the resolution principle. Journal of the A CM, 12, 1965. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.M. Spivey. A functional theory of exceptions. Science of Computer Programming, 14(1), June 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.P. Wadler and S. Blott. How to make ad-hoc polymorphism less ad-hoc. In 16th A CM ann~ual symposium on Principles of Programming Languages, Austin, Texas, January 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14.P. Wadler. Comprehending Monads. A CM conference on LISP and Functional Programming, Nice, France, June 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.P. Wadler. The essence of functional programming. In 19th Annual Symposium on Principles of Programming Languages, Santa Fe, New Mexico, January 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A system of constructor classes: overloading and implicit higher-order polymorphism

          Recommendations

          Reviews

          Edward A. Schneider

          Jones presents an important extension to type classes as found in the applicative programming language Haskell. Type classes are a set of types to which a group of polymorphic functions may be applied; they provide a means to control ad hoc polymorphism. The extension presented in this paper generalizes a class to consist of constructed types, possibly containing one or more type variables (such as LIST * ). Thus, map can be defined not only over lists, but over trees and other types. This extension seems to be motivated by the desire to define monads in applicative languages, and an extensive example of the definition of monads using extended type classes is presented. Following this example, the author gives a formal treatment of extended type classes as kinds and presents an algorithm for implicitly inferring the kind of a type class expression. An implementation of these type classes is available for experimentation in Gofer, a Haskell relative. The paper is easy to understand, although some knowledge of type classes and monads would be helpful. I recommend it for anyone interested in applicative languages and their typing.

          Access critical reviews of Computing literature here

          Become a reviewer for Computing Reviews.

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            FPCA '93: Proceedings of the conference on Functional programming languages and computer architecture
            July 1993
            350 pages
            ISBN:089791595X
            DOI:10.1145/165180

            Copyright © 1993 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 1 July 1993

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader