International audienceRefinement types allow for lightweight program verification by enriching types with logical predicates. Liquid typing provides a decidable refinement inference mechanism that is convenient but subject to two major issues: (1) inference is global and requires top-level annotations, making it unsuitable for inference of modular code components and prohibiting its applicability to library code, and (2) inference failure results in obscure error messages. These difficulties seriously hamper the migration of existing code to use refinements.This paper shows that gradual liquid type inference–a novel combination of liquid inference and gradual refinement types–addresses both issues. Gradual refinement types, which support im...
International audienceGradually typed languages allow statically typed and dynamically typed code to...
Although dynamically typed languages allow developers to be more productive in writing source code, ...
technical reportStatic inference involves the compile-time analysis of programs, either with a view ...
Haskell has many delightful features. Perhaps the one most beloved by its users is its type system t...
Because of our increasing dependence on software in every aspect of our lives, it is crucial that ou...
SMT-based checking of refinement types for call-by-value lan-guages is a well-studied subject. Unfor...
Code deficiencies and bugs constitute an unavoidable part of software systems. In safety-critical sy...
AbstractType inference is the compile-time process of reconstructing missing type information in a p...
Gradual typing is a discipline for integrating dynamic checking into a static type system. Since its...
Static and dynamic type systems have well-known strengths and weaknesses. Gradual typing provides th...
Static and dynamic type systems have well-known strengths and weaknesses. Gradual typing provides th...
We develop an explicit two level system that allows programmers to reason about the behavior of effe...
Liquid Haskell is an extension to the type system of Haskell that supports formal reasoning about pr...
A liquid type is an ordinary Hindley-Milner type annotated with a logical predicate that states the ...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
International audienceGradually typed languages allow statically typed and dynamically typed code to...
Although dynamically typed languages allow developers to be more productive in writing source code, ...
technical reportStatic inference involves the compile-time analysis of programs, either with a view ...
Haskell has many delightful features. Perhaps the one most beloved by its users is its type system t...
Because of our increasing dependence on software in every aspect of our lives, it is crucial that ou...
SMT-based checking of refinement types for call-by-value lan-guages is a well-studied subject. Unfor...
Code deficiencies and bugs constitute an unavoidable part of software systems. In safety-critical sy...
AbstractType inference is the compile-time process of reconstructing missing type information in a p...
Gradual typing is a discipline for integrating dynamic checking into a static type system. Since its...
Static and dynamic type systems have well-known strengths and weaknesses. Gradual typing provides th...
Static and dynamic type systems have well-known strengths and weaknesses. Gradual typing provides th...
We develop an explicit two level system that allows programmers to reason about the behavior of effe...
Liquid Haskell is an extension to the type system of Haskell that supports formal reasoning about pr...
A liquid type is an ordinary Hindley-Milner type annotated with a logical predicate that states the ...
Flaws in computer software are a fact of life, both in small and large-scale applications. Compile...
International audienceGradually typed languages allow statically typed and dynamically typed code to...
Although dynamically typed languages allow developers to be more productive in writing source code, ...
technical reportStatic inference involves the compile-time analysis of programs, either with a view ...