Algorithms
Introduction to algorithms
Balanced trees with removals: an exercise in rewriting and proof
Science of Computer Programming
Purely functional data structures
Purely functional data structures
Calling hell from heaven and heaven from hell
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Refinement-Type Checker for Standard ML
AMAST '97 Proceedings of the 6th International Conference on Algebraic Methodology and Software Technology
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
Red-black trees in a functional setting
Journal of Functional Programming
ACM SIGPLAN Notices
Iteration and coiteration schemes for higher-order and nested datatypes
Theoretical Computer Science - Foundations of software science and computation structures
Dependent ML An approach to practical programming with dependent types
Journal of Functional Programming
Refined typechecking with Stardust
PLPV '07 Proceedings of the 2007 workshop on Programming languages meets program verification
Purely functional 1-2 brother trees
Journal of Functional Programming
Hi-index | 0.00 |
Chris Okasaki showed how to implement red-black trees in a functional programming language. Ralf Hinze incorporated even the invariants of such data structures into their types, using higher-order nested datatypes. We show how one can achieve something very similar without the usual performance penalty of such types, by combining the features of nested datatypes, phantom types and existential type variables.