FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Analytical and structural polymorphism expressed using patterns over types
Analytical and structural polymorphism expressed using patterns over types
Qualified types: theory and practice
Qualified types: theory and practice
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
Intensional polymorphism in type-erasure semantics
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Implicit parameters: dynamic scoping with static types
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A new approach to generic functional programming
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compositional explanation of types and algorithmic debugging of type errors
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
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
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
Generic Programming within Dependently Typed Programming
Proceedings of the IFIP TC2/WG2.1 Working Conference on Generic Programming
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
Journal of Functional Programming
Scrap more boilerplate: reflection, zips, and generalised casts
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Scrap your boilerplate with class: extensible generic functions
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
There and back again: arrows for invertible programming
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
TypeCase: a design pattern for type-indexed functions
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Generic programming in Fortran
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
RepLib: a library for derivable type classes
Proceedings of the 2006 ACM SIGPLAN workshop on Haskell
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Modular generic programming with extensible superclasses
Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming
Type-safe run-time polytypic programming
Journal of Functional Programming
Customizing an XML-Haskell data binding with type isomorphism inference in Generic Haskell
Science of Computer Programming
A history of Haskell: being lazy with class
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Comparing libraries for generic programming in haskell
Proceedings of the first ACM SIGPLAN symposium on Haskell
Testing properties of generic functions
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
Comparing approaches to generic programming in Haskell
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Exchanging sources between clean and Haskell: a double-edged front end for the clean compiler
Proceedings of the third ACM Haskell symposium on Haskell
iData for the world wide web – programming interconnected web forms
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
CiE'06 Proceedings of the Second conference on Computability in Europe: logical Approaches to Computational Barriers
GEC: a toolkit for generic rapid prototyping of type safe interactive applications
AFP'04 Proceedings of the 5th international conference on Advanced Functional Programming
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
Polytypic syntax tree operations
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
With-Loop fusion for data locality and parallelism
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
Proceedings of the 9th ACM SIGPLAN workshop on Generic programming
Hi-index | 0.00 |
Generic Haskell is an extension of Haskell that supports the construction of generic programs. During the development of several applications, such as an XML editor and compressor, we encountered a number of limitations with the existing (Classic) Generic Haskell language, as implemented by the current Generic Haskell compiler. Specifically, generic definitions become disproportionately more difficult to write as their complexity increases, such as when one generic function uses another, because recursion is implicit in generic definitions. In the current implementation, writing such functions suffers the burden of a large administrative overhead and is at times counter-intuitive. Furthermore, the absence of type checking in the current implementation can make Generic Haskell hard to use.In this paper we develop the foundations of Dependency-style Generic Haskell which addresses the above problems, shifting the burden from the programmer to the compiler. These foundations consist of a full type system for Dependency-style Generic Haskell's core language and appropriate reduction rules. The type system enables the programmer to write generic functions in a more natural style, taking care of dependency details which were previously the programmer's responsibility.