Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Miranda: a non-strict functional language with polymorphic types
Proc. of a conference on Functional programming languages and computer architecture
On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Three approaches to type structure
Proc. of the international joint conference on theory and practice of software development (TAPSOFT) Berlin, March 25-29, 1985 on Mathematical foundations of software development, Vol. 1: Colloquium on trees in algebra and programming (CAAP'85)
Structural subtyping and the notion of power type
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Abstract types have existential types
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Polymorphism and type checking in object-oriented languages
ACM SIGPLAN Notices
Conception, evolution, and application of functional programming languages
ACM Computing Surveys (CSUR)
Type-dependent parameter inference
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reasoning about object-oriented programs that use subtypes
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Strictness and binding-time analyses: two for the price of one
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
An ad hoc approach to the implementation of polymorphism
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM SIGPLAN OOPS Messenger
Introduction to the literature on object-oriented design, programming, and languages
ACM SIGPLAN OOPS Messenger
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
The design and implementation of hierarchical software systems with reusable components
ACM Transactions on Software Engineering and Methodology (TOSEM)
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
A calculus for overloaded functions with subtyping
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Type inference in the presence of overloading, subtyping and recursive types
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A system of constructor classes: overloading and implicit higher-order polymorphism
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Implementing Haskell overloading
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Compiler-directed type reconstruction for polymorphic languages
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Widening the representation bottleneck: a functional implementation of relational programming
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Tag-free garbage collection using explicit type parameters
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Semantics of type classes revisited
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Polymorphic type inference and abstract data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
A polymorphic record calculus and its compilation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Unboxed values and polymorphic typing revisited
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Simplifying and improving qualified types
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Highlights from nhc—a space-efficient Haskell compiler
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Formally based profiling for higher-order functional languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
An Unboxed Operational Semantics for ML Polymorphism
Lisp and Symbolic Computation
Pizza into Java: translating theory into practice
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type checking higher-order polymorphic multi-methods
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
First-class polymorphism with type inference
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dynamic typing as staged type inference
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Contraint-based polymorphism in Cecil: towards a practical and static type system
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Should your specification language be typed
ACM Transactions on Programming Languages and Systems (TOPLAS)
Implicit parameters: dynamic scoping with static types
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-safe cast: (functional pearl)
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Type-preserving garbage collectors
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Open and closed scopes for constrained genericity
Theoretical Computer Science
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Type classes with more higher-order polymorphism
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
A lightweight implementation of generics and dynamics
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Type Classes with Functional Dependencies
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Encoding Intensional Type Analysis
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
Building Constraint Solvers with HAL
Proceedings of the 17th International Conference on Logic Programming
Component Libraries and Language Features
Ada Europe '01 Proceedings of the 6th Ade-Europe International Conference Leuven on Reliable Software Technologies
Binding-Time Analysis for Polymorphic Types
PSI '02 Revised Papers from the 4th International Andrei Ershov Memorial Conference on Perspectives of System Informatics: Akademgorodok, Novosibirsk, Russia
Hidden Specification of a Functional System
Computer Aided Systems Theory - EUROCAST 2001-Revised Papers
Language Independent Container Specification
Selected Papers from the International Seminar on Generic Programming
Generic Facilities in Object-Oriented ASMs
ASM '00 Proceedings of the International Workshop on Abstract State Machines, Theory and Applications
ASM '00 Proceedings of the International Workshop on Abstract State Machines, Theory and Applications
Higher-Order Intensional Type Analysis
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
To the Gates of HAL: A HAL Tutorial
FLOPS '02 Proceedings of the 6th International Symposium on Functional and Logic Programming
Interactive type debugging in Haskell
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Concept-controlled polymorphism
Proceedings of the 2nd international conference on Generative programming and component engineering
Free theorems in the presence of seq
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A theory of classes: proofs and models
Mathematical Structures in Computer Science
Single Assignment C: efficient support for high-level array operations in a functional setting
Journal of Functional Programming
Inlining as staged computation
Journal of Functional Programming
Journal of Functional Programming
Type-checking multi-parameter type classes
Journal of Functional Programming
A static semantics for Haskell
Journal of Functional Programming
Faking it Simulating dependent types in Haskell
Journal of Functional Programming
ACM SIGPLAN Notices
Constraint-set satisfiability for overloading
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
Functional pearl: implicit configurations--or, type classes reflect the values of types
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
System Level Specification in Lava
DATE '03 Proceedings of the conference on Design, Automation and Test in Europe - Volume 1
Type-FUNCTIONAL PEARL safe cast
Journal of Functional Programming
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
Organizing Numerical Theories Using Axiomatic Type Classes
Journal of Automated Reasoning
Region streams: functional macroprogramming for sensor networks
DMSN '04 Proceeedings of the 1st international workshop on Data management for sensor networks: in conjunction with VLDB 2004
Essential language support for generic programming
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Scrap your boilerplate with class: extensible generic functions
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Verifying haskell programs using constructive type theory
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Associated types and constraint propagation for mainstream object-oriented generics
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-directed weaving of aspects for higher-order functional languages
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Algorithm specialization in generic programming: challenges of constrained generics in C++
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Type-oriented construction of web user interfaces
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Extracting programs from type class proofs
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Polymorphic typed defunctionalization and concretization
Higher-Order and Symbolic Computation
Generic programming and high-performance libraries
International Journal of Parallel Programming - Special issue: The next generation software program
RepLib: a library for derivable type classes
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Modular generic programming with extensible superclasses
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Concepts: linguistic support for generic programming in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Software extension and integration with type classes
Proceedings of the 5th international conference on Generative programming and component engineering
Type-safe run-time polytypic programming
Journal of Functional Programming
A constraint-based approach to guarded algebraic data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Iteration and coiteration schemes for higher-order and nested datatypes
Theoretical Computer Science - Foundations of software science and computation structures
The Impact of seq on Free Theorems-Based Program Transformations
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Aspect-oriented programming with type classes
Proceedings of the 6th workshop on Foundations of aspect-oriented languages
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Language-Based Program Verification via Expressive Types
Electronic Notes in Theoretical Computer Science (ENTCS)
Library composition and adaptation using c++ concepts
GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
A generic usage analysis with subeffect qualifiers
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Selective strictness and parametricity in structural operational semantics, inequationally
Theoretical Computer Science
Clowns to the left of me, jokers to the right (pearl): dissecting data structures
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hm(x) type inference is clp(x) solving
Journal of Functional Programming
Writing systems software in a functional language: an experience report
Proceedings of the 4th workshop on Programming languages and operating systems
Language and program design for functional dependencies
Proceedings of the first ACM SIGPLAN symposium on Haskell
A comparison of c++ concepts and haskell type classes
Proceedings of the ACM SIGPLAN workshop on Generic programming
A Supercompiler for Core Haskell
Implementation and Application of Functional Languages
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
A foundation for flow-based program matching: using temporal logic and model checking
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 3rd workshop on Programming languages meets program verification
ML Modules and Haskell Type Classes: A Constructive Comparison
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
C++ concepts as institutions: a specification view on concepts
LCSD '07 Proceedings of the 2007 Symposium on Library-Centric Software Design
Neon: A Library for Language Usage Analysis
Software Language Engineering
Writing Composable Software with InterpreterLib
SC '09 Proceedings of the 8th International Conference on Software Composition
Generic Libraries in C++ with Concepts from High-Level Domain Descriptions in Haskell
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Free theorems involving type constructor classes: functional pearl
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
What does aspect-oriented programming mean for functional programmers?
Proceedings of the 2009 ACM SIGPLAN workshop on Generic programming
Losing functions without gaining data: another look at defunctionalisation
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Reusable, generic program analyses and transformations
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
JavaGI in the battlefield: practical experience with generalized interfaces
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Social processes, program verification and all that
Mathematical Structures in Computer Science
On understanding data abstraction, revisited
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
On the Decidability of Subtyping with Bounded Existential Types
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
A Design for Type-Directed Programming in Java
Electronic Notes in Theoretical Computer Science (ENTCS)
Programming with singular and plural non-deterministic functions
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Operational semantics for declarative multi-paradigm languages
Journal of Symbolic Computation
IFL'02 Proceedings of the 14th international conference on Implementation of functional languages
Science of Computer Programming
Constructive type classes in Isabelle
TYPES'06 Proceedings of the 2006 international conference on Types for proofs and programs
Source-level proof reconstruction for interactive theorem proving
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
Libraries for generic programming in haskell
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Declarative modeling of finite mathematics
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Type-directed weaving of aspects for polymorphically typed functional languages
Science of Computer Programming
Ad-hoc polymorphism and dynamic typing in a statically typed functional language
Proceedings of the 6th ACM SIGPLAN workshop on Generic programming
Experience report: using hackage to inform language design
Proceedings of the third ACM Haskell symposium on Haskell
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Parametricity and dependent types
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Instance chains: type class programming without overlapping instances
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Type classes as objects and implicits
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
On arithmetic computations with hereditarily finite sets, functions and types
ICTAC'10 Proceedings of the 7th International colloquium conference on Theoretical aspects of computing
Generic programming with c++ concepts and haskell type classes: A comparison
Journal of Functional Programming
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type classes in functional logic programming
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Proceedings of the 14th International Conference on Database Theory
Liberal typing for functional logic programs
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
A language for generic programming in the large
Science of Computer Programming
Support for the evolution of C++ generic functions
SLE'10 Proceedings of the Third international conference on Software language engineering
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamics for ML using Meta-Programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Monads, zippers and views: virtualizing the monad stack
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
On the bright side of type classes: instance arguments in Agda
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
How to make ad hoc proof automation less ad hoc
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Type checking modular multiple dispatch with parametric polymorphism and multiple inheritance
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Supporting Agent Systems in the Programming Language
WI-IAT '11 Proceedings of the 2011 IEEE/WIC/ACM International Conferences on Web Intelligence and Intelligent Agent Technology - Volume 03
A simple semantics for polymorphic recursion
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
A framework for extended algebraic data types
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Declarative scripting in haskell
SLE'09 Proceedings of the Second international conference on Software Language Engineering
Outsidein(x) modular type inference with local assumptions
Journal of Functional Programming - Dedicated to ICFP 2009
CHARME'05 Proceedings of the 13 IFIP WG 10.5 international conference on Correct Hardware Design and Verification Methods
Language requirements for large-scale generic libraries
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Method shelters: avoiding conflicts among class extensions caused by local rebinding
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
Type processing by constraint reasoning
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Proving properties about functions on lists involving element tests
WADT'10 Proceedings of the 20th international conference on Recent Trends in Algebraic Development Techniques
Proceedings of the 27th Annual ACM Symposium on Applied Computing
The implicit calculus: a new foundation for generic programming
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
A system for axiomatic programming
CICM'12 Proceedings of the 11th international conference on Intelligent Computer Mathematics
Elaborating intersection and union types
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
The Impact of seq on Free Theorems-Based Program Transformations
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
SSGIP'10 Proceedings of the 2010 international spring school conference on Generic and Indexed Programming
A compilation model for aspect-oriented polymorphically typed functional languages
SAS'07 Proceedings of the 14th international conference on Static Analysis
JavaGI: generalized interfaces for java
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Challenges for a trace-based just-in-time compiler for haskell
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Mixin’ Up the ML Module System
ACM Transactions on Programming Languages and Systems (TOPLAS)
An interactive extension mechanism for reusing verified programs
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Scala macros: let our powers combine!: on how rich syntax and static types work with metaprogramming
Proceedings of the 4th Workshop on Scala
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hasochism: the pleasure and pain of dependently typed haskell programming
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
The power of interoperability: why objects are inevitable
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Spiral in scala: towards the systematic construction of generators for performance libraries
Proceedings of the 12th international conference on Generative programming: concepts & experiences
The operating system: should there be one?
Proceedings of the Seventh Workshop on Programming Languages and Operating Systems
Canonical structures for the working coq user
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Synchronous digital circuits as functional programs
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
This paper presents type classes, a new approach to ad-hoc polymorphism. Type classes permit overloading of arithmetic operators such as multiplication, and generalise the “eqtype variables” of Standard ML. Type classes extend the Hindley/Milner polymorphic type system, and provide a new approach to issues that arise in object-oriented programming, bounded type quantification, and abstract data types. This paper provides an informal introduction to type classes, and defines them formally by means of type inference rules.