Practical Datatype Specializations with Phantom Types and Recursion Schemes
Abstract
Datatype specialization is a form of subtyping that captures program invariants on data structures that are expressed using the convenient and intuitive datatype notation. Of particular interest are structural invariants such as well-formedness. We investigate the use of phantom types for describing datatype specializations. We show that it is possible to express statically-checked specializations within the type system of Standard ML. We also show that this can be done in a way that does not lose useful programming facilities such as pattern matching in case expressions.
- Publication:
-
arXiv e-prints
- Pub Date:
- October 2005
- DOI:
- arXiv:
- arXiv:cs/0510074
- Bibcode:
- 2005cs.......10074F
- Keywords:
-
- Computer Science - Programming Languages;
- D.1.1;
- D.3.3;
- F.3.3
- E-Print:
- 25 pages. Appeared in the Proc. of the 2005 ACM SIGPLAN Workshop on ML