Simple imperative polymorphism
Lisp and Symbolic Computation - Special issue on state in programming languages (part I)
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Coinductive Axiomatization of Recursive Type Equality and Subtyping
TLCA '97 Proceedings of the Third International Conference on Typed Lambda Calculi and Applications
XDuce: A statically typed XML processing language
ACM Transactions on Internet Technology (TOIT)
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Journal of Functional Programming
Parametric polymorphism for XML
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Regular expression types for XML
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Semantic subtyping: Dealing set-theoretically with function, union, intersection, and negation types
Journal of the ACM (JACM)
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
XHaskell --- Adding Regular Expression Types to Haskell
Implementation and Application of Functional Languages
Refinement types and computational duality
Proceedings of the 3rd workshop on Programming languages meets program verification
Parametric polymorphism for XML
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 13th International Conference on Database Theory
Set-theoretic foundation of parametric polymorphism and subtyping
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Parametric polymorphism and semantic subtyping: the logical connection
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Polymorphic functions with set-theoretic types: part 1: syntax, semantics, and evaluation
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
We propose a type system based on regular tree grammars, where algebraic datatypes are interpreted in a structural way. Thus, the same constructors can be reused for different types and a flexible subtyping relation can be defined between types, corresponding to the inclusion of their semantics. For instance, one can define a type for lists and a subtype of this type corresponding to lists of even length. Patterns are simply types annotated with binders. This provides a generalization of algebraic patterns with the ability of matching arbitrarily deep in a value. Our main contribution, compared to languages such as XDuce and CDuce, is that we are able to deal with both polymorphism and function types.