Higher-order modules and the phase distinction
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Manifest types, modules, and separate compilation
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Simplifying and improving qualified types
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Flexible representation analysis
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Intensional polymorphism in type-erasure semantics
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Type inference with constrained types
Theory and Practice of Object Systems - Special issue on foundations of object-oriented languages
Dynamic typing for distributed programming in polymorphic languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Parametricity and variants of Girard's J operator
Information Processing Letters
Type-safe cast: (functional pearl)
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Guarded recursive datatype constructors
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A type system for higher-order modules
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Scrap your boilerplate: a practical design pattern for generic programming
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
The Matrix Template Library: Generic Components for High-Performance Scientific Computing
Computing in Science and Engineering
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
A Generic Programming Extension for Clean
IFL '02 Selected Papers from the 13th International Workshop on Implementation of Functional Languages
MPC '02 Proceedings of the 6th International Conference on Mathematics of Program Construction
Higher-Order Intensional Type Analysis
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Dependency-style generic haskell
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A comparative study of language support for generic programming
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Generalizing generalized tries
Journal of Functional Programming
A static semantics for Haskell
Journal of Functional Programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Essential language support for generic programming
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Scrap your nameplate: (functional pearl)
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
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
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Algorithm specialization in generic programming: challenges of constrained generics in C++
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
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
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
System F with type equality coercions
TLDI '07 Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation
Understanding functional dependencies via constraint handling rules
Journal of Functional Programming
An extended comparative study of language support for generic programming
Journal of Functional Programming
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Data parallel Haskell: a status report
Proceedings of the 2007 workshop on Declarative aspects of multicore programming
Type-Safe Code Transformations in Haskell
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
Haskell session types with (almost) no class
Proceedings of the first ACM SIGPLAN symposium on Haskell
Language and program design for functional dependencies
Proceedings of the first ACM SIGPLAN symposium on Haskell
Clase: cursor library for a structured editor
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
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
ML Modules and Haskell Type Classes: A Constructive Comparison
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Varying Domain Representations in Hagl
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
JavaGI in the battlefield: practical experience with generalized interfaces
GPCE '09 Proceedings of the eighth international conference on Generative programming and component engineering
Minimizing dependencies within generic classes for faster and smaller programs
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
Constructing language processors with algebra combinators
Science of Computer Programming
Science of Computer Programming
Generic record combinators with static type checking
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Regular, shape-polymorphic, parallel arrays in Haskell
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Morphing: Structurally shaping a class by reflecting on others
ACM Transactions on Programming Languages and Systems (TOPLAS)
Generic programming with c++ concepts and haskell type classes: A comparison
Journal of Functional Programming
A lightweight approach to datatype-generic rewriting
Journal of Functional Programming
Generative type abstraction and type-level computation
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Pull-ups, push-downs, and passing it around
IFL'09 Proceedings of the 21st international conference on Implementation and application of functional languages
A semantics for lazy assertions
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
A language for generic programming in the large
Science of Computer Programming
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Explicitly typed exceptions for haskell
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
Outsidein(x) modular type inference with local assumptions
Journal of Functional Programming - Dedicated to ICFP 2009
Language requirements for large-scale generic libraries
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Haskell type constraints unleashed
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
The implicit calculus: a new foundation for generic programming
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Guiding parallel array fusion with indexed types
Proceedings of the 2012 Haskell Symposium
Proceedings of the 2012 Haskell Symposium
Proceedings of the 2012 Haskell Symposium
Work efficient higher-order vectorisation
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
SSGIP'10 Proceedings of the 2010 international spring school conference on Generic and Indexed Programming
JavaGI: generalized interfaces for java
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Just do it while compiling!: fast extensible records in haskell
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Exploiting vector instructions with generalized stream fusio
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Synchronous digital circuits as functional programs
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
Haskell's type classes allow ad-hoc overloading, or type-indexing, of functions. A natural generalisation is to allow type-indexing of data types as well. It turns out that this idea directly supports a powerful form of abstraction called associated types, which are available in C++ using traits classes. Associated types are useful in many applications, especially for self-optimising libraries that adapt their data representations and algorithms in a type-directed manner.In this paper, we introduce and motivate associated types as a rather natural generalisation of Haskell's existing type classes. Formally, we present a type system that includes a type-directed translation into an explicitly typed target language akin to System F; the existence of this translation ensures that the addition of associated data types to an existing Haskell compiler only requires changes to the front end.