Abstract types have existential type
ACM Transactions on Programming Languages and Systems (TOPLAS)
Singleton, union, and intersection types for program extraction
Information and Computation - Special conference issue: international conference on theoretical aspects of computer software
Lisp and Symbolic Computation - Special issue on state in programming languages (part I)
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Eliminating array bound checking through dependent types
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Transparent modules with fully syntatic signatures
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
From system F to typed assembly language
ACM Transactions on Programming Languages and Systems (TOPLAS)
Deciding type equivalence in a language with singleton kinds
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
From LCF to HOL: a short history
Proof, language, and interaction
Typed memory management via static capabilities
ACM Transactions on Programming Languages and Systems (TOPLAS)
HYDRA: the kernel of a multiprocessor operating system
Communications of the ACM
Tagless staged interpreters for typed languages
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
A type system for higher-order modules
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Capability-Based Financial Instruments
FC '00 Proceedings of the 4th International Conference on Financial Cryptography
Second-Order Logical Relations (Extended Abstract)
Proceedings of the Conference on Logic of Programs
Singleton kinds and singleton types
Singleton kinds and singleton types
Journal of Functional Programming
Faking it Simulating dependent types in Haskell
Journal of Functional Programming
Monadic encapsulation of effects: a revised approach (extended version)
Journal of Functional Programming
Functional pearl: implicit configurations--or, type classes reflect the values of types
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
Journal of Functional Programming
On-demand refinement of dependent types
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Mnemonics: type-safe bytecode generation at run time
Higher-Order and Symbolic Computation
Dependently typed programming with singletons
Proceedings of the 2012 Haskell Symposium
Hi-index | 0.00 |
We describe a modular programming style that harnesses modern type systems to verify safety conditions in practical systems. This style has three ingredients:(i)A compact kernel of trust that is specific to the problem domain. (ii)Unique names (capabilities) that confer rights and certify properties, so as to extend the trust from the kernel to the rest of the application. (iii)Static (type) proxies for dynamic values. We illustrate our approach using examples from the dependent-type literature, but our programs are written in Haskell and OCaml today, so our techniques are compatible with imperative code, native mutable arrays, and general recursion. The three ingredients of this programming style call for (1) an expressive core language, (2) higher-rank polymorphism, and (3) phantom types.