On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Compiling polymorphism using intensional type analysis
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Algebra of programming
ICFP '98 Proceedings of the third 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
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Towards a theory of type structure
Programming Symposium, Proceedings Colloque sur la Programmation
Functional Programming with Overloading and Higher-Order Polymorphism
Advanced Functional Programming, First International Spring School on Advanced Functional Programming Techniques-Tutorial Text
Advanced Functional Programming, Second International School-Tutorial Text
Polytypic Values Possess Polykinded Types
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
Second-Order Logical Relations (Extended Abstract)
Proceedings of the Conference on Logic of Programs
CTCS '97 Proceedings of the 7th International Conference on Category Theory and Computer Science
Recursion schemes from comonads
Nordic Journal of Computing
Generic Programming: Advanced Lectures
Generic Programming: Advanced Lectures
Scrap more boilerplate: reflection, zips, and generalised casts
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Scrap your boilerplate with class: extensible generic functions
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Proceedings of the 2006 international conference on Datatype-generic programming
SSDGP'06 Proceedings of the 2006 international conference on Datatype-generic programming
Proceedings of the 6th ACM SIGPLAN workshop on Generic programming
Parametricity and dependent types
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Adjoint folds and unfolds: or: scything through the thicket of morphisms
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Scala for generic programmers: Comparing haskell and scala support for generic programming
Journal of Functional Programming
AMAST'10 Proceedings of the 13th international conference on Algebraic methodology and software technology
Towards a categorical foundation for generic programming
Proceedings of the seventh ACM SIGPLAN workshop on Generic programming
Adjoint folds and unfolds-An extended study
Science of Computer Programming
Hi-index | 0.00 |
Datatype-generic programs are programs that are parametrized by a datatype or type functor: whereas polymorphic programs abstract from the "integers" in "lists of integers",datatype-generic programs abstract from the "lists of". There are two main styles of datatype-generic programming: the Algebra of Programming approach, characterized by structured recursion operators arising from initial algebras and final coalgebras, and the Generic Haskell approach, characterized by case analysis over the structure of a datatype. We show that the former enjoys a kind of higher-order naturality, relating the behaviours of generic functions at different types; in contrast, the latter is ad~hoc, with no coherence required or provided between the various clauses of a definition. Moreover, the naturality properties arise "for free", simply from the parametrized types of the generic functions: we present a higher-order parametricity theorem for datatype-generic operators.