A framework for defining logics
Journal of the ACM (JACM)
The essence of functional programming
POPL '92 Proceedings of the 19th 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
MPC '98 Proceedings of the Mathematics of Program Construction
A nanopass infrastructure for compiler education
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
Fast and loose reasoning is morally correct
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Applicative programming with effects
Journal of Functional Programming
Journal of Functional Programming
Type checking with open type functions
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
A pattern for almost compositional functions
Journal of Functional Programming
Generic programming with fixed points for mutually recursive datatypes
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
A generic deriving mechanism for Haskell
Proceedings of the third ACM Haskell symposium on Haskell
Generic programming for indexed datatypes
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
TLDI '12 Proceedings of the 8th ACM SIGPLAN workshop on Types in language design and implementation
Outsidein(x) modular type inference with local assumptions
Journal of Functional Programming - Dedicated to ICFP 2009
The right kind of generic programming
Proceedings of the 8th ACM SIGPLAN workshop on Generic programming
A nanopass framework for commercial compiler development
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Modern type systems present the programmer with a trade-off between correctness and code complexity--more precise, or exact, types that allow only legal values prevent runtime errors while less precise types enable more reuse. Unfortunately, the software engineering benefits of reuse and avoiding duplicate code currently outweigh assurance gains of exact types. We factor out a pattern common in conversions that result from using exact types as a reusable function, extending existing generic programming techniques to avoid code duplication and enable reuse.