How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dynamic typing in a statically typed language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Bananas in space: extending fold and unfold to exponential types
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
ACM Transactions on Programming Languages and Systems (TOPLAS)
Putting type annotations to work
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PolyP—a polytypic programming language extension
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
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
Polytypic Values Possess Polykinded Types
MPC '00 Proceedings of the 5th 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
Programming with types
Dependency-style generic haskell
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Intensional polymorphism in type-erasure semantics
Journal of Functional Programming
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Scrap more boilerplate: reflection, zips, and generalised casts
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Strongly typed heterogeneous collections
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Type-FUNCTIONAL PEARL safe cast
Journal of Functional Programming
Scrap your boilerplate with class: extensible generic functions
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
TypeCase: a design pattern for type-indexed functions
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Type-safe run-time polytypic programming
Journal of Functional Programming
“Scrap your boilerplate” reloaded
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
“Scrap your boilerplate” revolutions
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Free Theorems and Runtime Type Representations
Electronic Notes in Theoretical Computer Science (ENTCS)
Transformation of structure-shy programs: applied to XPath queries and strategic functions
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A lightweight interactive debugger for haskell
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Uniform boilerplate and list processing
Haskell '07 Proceedings of the ACM SIGPLAN workshop on Haskell workshop
Practical generic programming in OCaml
ML '07 Proceedings of the 2007 workshop on Workshop on ML
Proceedings of the ACM SIGPLAN workshop on Generic programming
Science of Computer Programming
What does aspect-oriented programming mean for functional programmers?
Proceedings of the 2009 ACM SIGPLAN workshop on Generic programming
Alloy: fast generic transformations for Haskell
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Arity-generic datatype-generic programming
Proceedings of the 4th ACM SIGPLAN workshop on Programming languages meets program verification
Comparing approaches to generic programming in Haskell
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Generic programming with dependent types
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Libraries for generic programming in haskell
AFP'08 Proceedings of the 6th international conference on Advanced functional programming
Scala for generic programmers: Comparing haskell and scala support for generic programming
Journal of Functional Programming
Transformation of structure-shy programs with application to XPath queries and strategic functions
Science of Computer Programming
On the bright side of type classes: instance arguments in Agda
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Generic programming with dependent types
SSGIP'10 Proceedings of the 2010 international spring school conference on Generic and Indexed Programming
Usage of generic programming on hackage: experience report
Proceedings of the 9th ACM SIGPLAN workshop on Generic programming
Hi-index | 0.00 |
Some type class instances can be automatically derived from the structure of types. As a result, the Haskell language includes the "deriving" mechanism to automatic generates such instances for a small number of built-in type classes. In this paper, we present RepLib, a GHC library that enables a similar mechanism for arbitrary type classes. Users of RepLib can define the relationship between the structure of a datatype and the associated instance declaration by a normal Haskell functions that pattern-matches a representation type. Furthermore, operations defined in this manner are extensible-instances for specific types not defined by type structure may also be incorporated. Finally, this library also supports the definition of operations defined by parameterized types.