This paper addresses the question of how to extend OCaml’s Hindley-Milner type system with types indexed by logical propositions and proofs of the Coq theorem prover, thereby providing an expressive and extensible mechanism for ensuring fine-grained program invariants. We propose adopting the approached used by Shao et al. for certified binaries. This approach maintains a phase distinction between the computational and logical languages, thereby limiting effects and non-termination to the computational language, and maintaining the decidability of the type system. The extension subsumes language features such as impredicative first-class (higher-rank) polymorphism and type operators, that are notoriously difficult to integrate with the Hind...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Abstract. Type inference in the context of polymorphic recursion is notoriously difficult. The exten...
with constraints. The basic idea is to factor out the common core of previous extensions of the Hind...
This paper addresses the question of how to extend OCaml’s Hindley-Milner type system with types ind...
This paper addresses the question of how to extend OCaml’s Hindley-Milner type system with types ind...
System F requires the programmer to write typing annotations for all functions (λx:τ.e), all polymor...
We present a general algorithm for solving systems of inclusion constraints over type expressions. T...
Abstract. Type inference in the context of polymorphic recursion is notoriously difficult. The exten...
We present a general algorithm for solving systems of inclusion constraints over type expressions. T...
Abstract. We investigate how to add coercive structural subtyping to a type system for simply-typed ...
Type inference—the problem of determining whether a program is well-typed—is well-understood. In con...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Many computer programs have the property that they work correctly on a variety of types of input; s...
In this paper we present a general framework HM(X) for Hindley/Milner style type systems with constr...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Abstract. Type inference in the context of polymorphic recursion is notoriously difficult. The exten...
with constraints. The basic idea is to factor out the common core of previous extensions of the Hind...
This paper addresses the question of how to extend OCaml’s Hindley-Milner type system with types ind...
This paper addresses the question of how to extend OCaml’s Hindley-Milner type system with types ind...
System F requires the programmer to write typing annotations for all functions (λx:τ.e), all polymor...
We present a general algorithm for solving systems of inclusion constraints over type expressions. T...
Abstract. Type inference in the context of polymorphic recursion is notoriously difficult. The exten...
We present a general algorithm for solving systems of inclusion constraints over type expressions. T...
Abstract. We investigate how to add coercive structural subtyping to a type system for simply-typed ...
Type inference—the problem of determining whether a program is well-typed—is well-understood. In con...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Many computer programs have the property that they work correctly on a variety of types of input; s...
In this paper we present a general framework HM(X) for Hindley/Milner style type systems with constr...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Abstract. Type inference in the context of polymorphic recursion is notoriously difficult. The exten...
with constraints. The basic idea is to factor out the common core of previous extensions of the Hind...