Basic polymorphic typechecking
Science of Computer Programming
A type-theoretic approach to higher-order modules with sharing
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Putting type annotations to work
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Using parameterized signatures to express modular structure
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
A new approach to generic functional programming
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Advanced module systems (invited talk): a guide for the perplexed
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Advanced Functional Programming, Second International School-Tutorial Text
Journal of Functional Programming
Monads for incremental computing
Proceedings of the seventh 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
Tool support for refactoring functional programs
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Haskell tools from the programatica project
Haskell '03 Proceedings of the 2003 ACM SIGPLAN workshop on Haskell
Pragmatic aspects of reusable program generators
Journal of Functional Programming
Two-level types and parameterized modules
Journal of Functional Programming
Journal of Functional Programming
A lightweight approach to datatype-generic rewriting
Proceedings of the ACM SIGPLAN workshop on Generic programming
Proceedings of the 6th ACM SIGPLAN workshop on Generic programming
A lightweight approach to datatype-generic rewriting
Journal of Functional Programming
Polytypic programming in haskell
IFL'03 Proceedings of the 15th international conference on Implementation of Functional Languages
Mappings make data processing go 'round
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Hi-index | 0.00 |
As a functional pearl, we describe an efficient, modularizedimplementation of unification using the state of mutable referencecells to encode substitutions. We abstract our algorithms along twodimensions, first abstracting away from the structure of the termsto be unified, and second over the monad in which the mutable stateis encapsulated. We choose this example to illustrate two importanttechniques that we believe many functional programmers would finduseful. The first of these is the definition of recursive datatypes using two levels: a structure defining level, and a recursiveknot-tying level. The second is the use of rank-2 polymorphisminside Haskell's record types to implement a form of typeparameterized modules.