Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/141471.141536acmconferencesArticle/Chapter ViewAbstractPublication PageslfpConference Proceedingsconference-collections
Article
Free access

Parametric type classes

Published: 01 January 1992 Publication History
  • Get Citation Alerts
  • Abstract

    We propose a generalization to Haskell's type classes where a class can have type parameters besides the placeholder variable. We show that this generalization is essential to represent container classes with overloaded data constructor and selector operations. We also show that the resulting type system has principal types and present unification and type reconstruction algorithms.

    References

    [1]
    P. Canning, W. Cook, W. Hill, W. Olthoff, and J. Mitchell. F-bounded polymorphism for objectoriented programming. In Proc. A CM Conf. Functional Programming Languages and Computer Architecture, pages 273-280, 1989.
    [2]
    Kung Chen, Martin Odersky, and Paul Hudak. Type inference for parametric type classes. Technical Report YALEU/DCS/RR-900, Dept. of Computer Science, Yale University, New Haven, Conn., May 1992.
    [3]
    Craig Chambers and David Ungax. Iterative type analysis and extended message splitting: Optimizing dynamically-typed object-oriented programs. In Proc. SIGPLAN '90 Conf. on Programming Language Design and Implementation, White Plains, New York, June 1990.
    [4]
    L. Damas and R. Milner. Principal type schemes for functional programs. In Proc. 9th A CM Syrup. on Principles of Programm2ng Languages, pages 207- 212, Jan. 1982.
    [5]
    Paul Hudak, Simon Peyton Jones, and Philip L. Wadler. Report on the programming language Haskell: a non-strict, purely functional language, version 1.1. Technical Report YALEU/DCS/RR-777, Dept. of Computer Science, Yale University, New Haven, Conn., August 1991.
    [6]
    Mark P. Jones. Type inference for qualified types. Technical Report PRG-TR-10-91, Oxford University Computing Laboratory, Oxford~ UK~ 1991.
    [7]
    Mark P. Jones. Coherence for qualified types. Private communication, March 1992.
    [8]
    Mark P. Jones. A theory of qualified types. In B. Krieg-Br{ickner, editor, Proco European Sysposium on Programming, pages 287-306~ Springer Verlag, Feburary 1992. LNCS 582.
    [9]
    R.D. Jenks and B.M. Trager. A language for computational algebra. In Proc. A CM Symposium on Symbolic and Algebraic Manipulation, pages 22-29, 1981.
    [10]
    S. Kaes. Parametric overloading in polymorphic programming languages. In H. Ganzinger, editor, Proc. and European Symosium on Programming, Lecture Notes in Computer Science, Vol. 300, pages 131-144, Nancy, France, March 1988. Springer~Verlag.
    [11]
    Mark D. Lilibridge. A generalization of type classes. distributed to HaskeU mailing llst, June 1991.
    [12]
    J. Meseguer~ J. Goguen, and G. Smolka. Ordersorted unification. J. Symbolic Computation, 8:383- 413, 1989.
    [13]
    T. Nipkow and G. Snelting. Type classes and overloading resolution via order-sorted unification. In J. Hughes, editor, Proc. Con}. on Functional Programming and Computer Architecture, pages 15-28. Springer-Verlag, 1991. LNCS 523.
    [14]
    J. Robinson. A machine-oriented logic based on the resolution principle, d. Assoc. Comput. Mach., 12(1):23-41, 1965.
    [15]
    Francois Rouaix. Safe run-time overloading. In Seventeenth Annual A GM Syrup. on Principles of Programming Languages, pages 355-366, San Franscico, CA, January 1990.
    [16]
    Dennis M. Volpano and Geoffery S. Smith. On the complexity of ML typabillty and overloading. In J. Hughes, editor, Proceedings of Functional Programming and Computer Architecture, pages 15-28. Springer-Verlag, 1991. LNCS 523.
    [17]
    P. Wadler. Comprehending monads. In Proc. A CM Conf. on LISP and Functional Programming, pages 61-78, June 1990.
    [18]
    P. Wadler. Continuing monads, August 1991. Tutorial Notes at FPCA'91.
    [19]
    Phil Wadler and Stephen Blott. How to make adhoc polymorphism less ad hoc. In Sixteenth Annual A CM Syrup. on Principles of Programming Languages, pages 60-76. ACM, 1989.

    Cited By

    View all

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    LFP '92: Proceedings of the 1992 ACM conference on LISP and functional programming
    January 1992
    365 pages
    ISBN:0897914813
    DOI:10.1145/141471
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 January 1992

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    LFP92
    LFP92: ACM Conference on Lisp and Functional Programming
    June 22 - 24, 1992
    California, San Francisco, USA

    Acceptance Rates

    Overall Acceptance Rate 30 of 109 submissions, 28%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)69
    • Downloads (Last 6 weeks)13
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Associated Effects: Flexible Abstractions for Effectful ProgrammingProceedings of the ACM on Programming Languages10.1145/36563938:PLDI(394-416)Online publication date: 20-Jun-2024
    • (2023)Metric First-Order Temporal Logic with Complex Data TypesRuntime Verification10.1007/978-3-031-44267-4_7(126-147)Online publication date: 1-Oct-2023
    • (2019)Automatic Refinement to Efficient Data StructuresJournal of Automated Reasoning10.1007/s10817-018-9461-963:1(53-94)Online publication date: 1-Jun-2019
    • (2013)Light-Weight containers for isabelleProceedings of the 4th international conference on Interactive Theorem Proving10.1007/978-3-642-39634-2_11(116-132)Online publication date: 22-Jul-2013
    • (2008)Language and program design for functional dependenciesACM SIGPLAN Notices10.1145/1543134.141129844:2(87-98)Online publication date: 25-Sep-2008
    • (2008)Language and program design for functional dependenciesProceedings of the first ACM SIGPLAN symposium on Haskell10.1145/1411286.1411298(87-98)Online publication date: 25-Sep-2008
    • (2008)Type classes with existential typesJournal of Functional Programming10.1017/S09567968000018176:03(485-518)Online publication date: 7-Nov-2008
    • (2008)A system of constructor classes: overloading and implicit higher-order polymorphismJournal of Functional Programming10.1017/S09567968000012105:01(1-35)Online publication date: 7-Nov-2008
    • (2007)A history of HaskellProceedings of the third ACM SIGPLAN conference on History of programming languages10.1145/1238844.1238856(12-1-12-55)Online publication date: 9-Jun-2007
    • (2007)Understanding functional dependencies via constraint handling rulesJournal of Functional Programming10.1017/S095679680600613717:1(83-129)Online publication date: 1-Jan-2007
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media