A novel representation of lists and its application to the function "reverse"
Information Processing Letters
Type checking records and variants in a natural extension of ML
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Typing record concatenation for free
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The art of Prolog (2nd ed.): advanced programming techniques
The art of Prolog (2nd ed.): advanced programming techniques
Simple imperative polymorphism
Lisp and Symbolic Computation - Special issue on state in programming languages (part I)
Type-directed partial evaluation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Theoretical Computer Science - Special volume on computer algebra
Encoding types in ML-like languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Static validation of dynamically generated HTML
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Guarded recursive datatype constructors
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
XDuce: A statically typed XML processing language
ACM Transactions on Internet Technology (TOIT)
Journal of Functional Programming
Faking it Simulating dependent types in Haskell
Journal of Functional Programming
A typed representation for HTML and XML documents in Haskell
Journal of Functional Programming
Journal of Functional Programming
Journal of Functional Programming
Encoding types in ML-like languages
Theoretical Computer Science - Mathematical foundations of programming semantics
Simple unification-based type inference for GADTs
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Dependent ML An approach to practical programming with dependent types
Journal of Functional Programming
Concoqtion: indexed types now!
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
The Essence of Form Abstraction
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
The Essence of Form Abstraction
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Unembedding domain-specific languages
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Types for units-of-measure: theory and practice
CEFP'09 Proceedings of the Third summer school conference on Central European functional programming school
Hi-index | 0.00 |
We implement statically-typed multi-holed contexts in OCaml using an underlying algebraic datatype augmented with phantom types. Existing approaches require dynamic checks or more complex type systems. In order to support concatenation we use two type parameters to represent the number of holes in a context as the difference between two Peano numbers. In order to support plugging a context with contexts of different arity we introduce a datatype of lists of contexts of length n with a total of m holes. Further, we extend our representation to allow holes to be marked with additional type information. As an example, we use these marks to implement statically-typed multi-holed XHTML contexts. We take advantage of Garrigue's relaxed value restriction.