VLDB 2026 Research / reviewers in the wild / expert
Didier Rémy
dblp:r/DRemy
· DBLP profile ↗
25ranked-venue papers
8as first author
2since 2021 · last 2025
0000-0002-0693-6278ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 18 · 7 first-author · 2 since 2021Theory of computation · 7 · 1 first-author
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Avoiding Signature Avoidance in ML Modules with ZippersabstractWe present ZipML , a new path-based type system for a fully fledged ML-module language that avoids the signature avoidance problem. This is achieved by introducing floating fields , which act as additional fields of a signature, invisible to the user but still accessible to the typechecker. In practice, they are handled as zippers on signatures, and can be seen as a lightweight extension of existing signatures. Floating fields allow to delay the resolution of instances of the signature avoidance problem as long as possible or desired. Since they do not exist at runtime, they can be simplified along type equivalence, and dropped once they became unreachable. We give rewriting rules for the simplification of floating fields without loss of type-sharing and present an algorithm that implements them. Remaining floating fields may fully disappear at signature ascription, especially in the presence of toplevel interfaces. Residual unavoidable floating fields can be shown to the user as a last resort, improving the quality of error messages. Besides, ZipML implements early and lazy strengthening, as well as lazy inlining of definitions, preventing duplication of signatures inside the typechecker. The correctness of the type system is proved by elaboration into M ω , which has itself been proved sound by translation to F ω . ZipML has been designed to be an improvement over OCaml that could be retrofitted into the existing implementation. Clement Blaudeau, Didier Rémy, Gabriel Radanne |
Proc. ACM Program. Lang. | 2 |
| 2024 | Fulfilling OCaml Modules with TransparencyabstractML modules come as an additional layer on top of a core language to offer large-scale notions of composition and abstraction. They largely contributed to the success of OCaml and SML. While modules are easy to write for common cases, their advanced use may become tricky. Additionally, despite a long line of works, their meta-theory remains difficult to comprehend, with involved soundness proofs. In fact, the module layer of OCaml does not currently have a formal specification and its implementation has some surprising behaviors. Building on previous translations from ML modules to Fω, we propose a type system, called Mω, that covers a large subset of OCaml modules, including both applicative and generative functors, and extended with transparent ascription. This system produces signatures in an OCaml-like syntax extended with Fω quantifiers. We provide a reverse translation from Mω signatures to path-based source signatures along with a characterization of signature avoidance cases, making Mω signatures well suited to serve as a new internal representation for a typechecker. The soundness of the type system is shown by elaboration in Fω. We improve over previous encodings of sealing within applicative functors, by the introduction of transparent existential types, a weaker form of existential types that can be lifted out of universal and arrow types. This shines a new light on the form of abstraction provided by applicative functors and brings their treatment much closer to those of generative functors. Clement Blaudeau, Didier Rémy, Gabriel Radanne |
Proc. ACM Program. Lang. | 2 |
| 2018 | A principled approach to ornamentation in MLabstractOrnaments are a way to describe changes in datatype definitions reorganizing, adding, or dropping some pieces of data so that functions operating on the bare definition can be partially and sometimes totally lifted into functions operating on the ornamented structure. We propose an extension of ML with higher-order ornaments, demonstrate its expressiveness with a few typical examples, including code refactoring, study the metatheoretical properties of ornaments, and describe their elaboration process. We formalize ornamentation via an a posteriori abstraction of the bare code, returning a generic term, which lives in a meta-language above ML. The lifted code is obtained by application of the generic term to well-chosen arguments, followed by staged reduction, and some remaining simplifications. We use logical relations to closely relate the lifted code to the bare code. Thomas Williams, Didier Rémy |
Proc. ACM Program. Lang. | 2 |
| 2017 | Ornaments: exploiting parametricity for safer, more automated code refactorization and code reuse (invited talk)abstractInductive datatypes and parametric polymorphism are two key features introduced in the ML family of languages, which have already been widely exploited for structuring programs: Haskell and ML programs are often more elegant and more correct by construction. Still, we sometimes need code to be refactored or adapted to be reused in a slightly different context. While the type system is considerably helpful in these situations, by automatically locating type-inconsistent program points or incomplete pattern matchings, this process could be made safer and more automated by further exploiting parametricity. We propose a posteriori program abstraction as a principle for such code transformations. Didier Rémy |
Haskell | 1 |
| 2015 | Full Reduction in the Face of Absurdity
Gabriel Scherer, Didier Rémy |
ESOP | 2 |
| 2015 | Which simple types have a unique inhabitant?abstractWe study the question of whether a given type has a unique inhabitant modulo program equivalence. In the setting of simply-typed lambda-calculus with sums, equipped with the strong --equivalence, we show that uniqueness is decidable. We present a saturating focused logic that introduces irreducible cuts on positive types ``as soon as possible''. Backward search in this logic gives an effective algorithm that returns either zero, one or two distinct inhabitants for any given type. Preliminary application studies show that such a feature can be useful in strongly-typed programs, inferring the code of highly-polymorphic library functions, or ``glue code'' inside more complex terms. Gabriel Scherer, Didier Rémy |
ICFP | 2 |
| 2013 | Ambivalent Types for Principal Type Inference with GADTs
Jacques Garrigue, Didier Rémy |
APLAS | 2 |
| 2013 | GADTs Meet Subtyping
Gabriel Scherer, Didier Rémy |
ESOP | 2 |
| 2012 | On the power of coercion abstractionabstractErasable coercions in System F-eta, also known as retyping functions, are well-typed eta-expansions of the identity. They may change the type of terms without changing their behavior and can thus be erased before reduction. Coercions in F-eta can model subtyping of known types and some displacement of quantifiers, but not subtyping assumptions nor certain forms of delayed type instantiation. We generalize F-eta by allowing abstraction over retyping functions. We follow a general approach where computing with coercions can be seen as computing in the lambda-calculus but keeping track of which parts of terms are coercions. We obtain a language where coercions do not contribute to the reduction but may block it and are thus not erasable. We recover erasable coercions by choosing a weak reduction strategy and restricting coercion abstraction to value-forms or by restricting abstraction to coercions that are polymorphic in their domain or codomain. The latter variant subsumes F-eta, F-sub, and MLF in a unified framework. Julien Cretin, Didier Rémy |
POPL | 2 |
| 2012 | A church-style intermediate language for MLF
Didier Rémy, Boris Yakobowski |
Theor. Comput. Sci. | 1 |
| 2009 | Modeling abstract types in modules with open existential typesabstractWe propose F-zip, a calculus of open existential types that is an extension of System F obtained by decomposing the introduction and elimination of existential types into more atomic constructs. Open existential types model modular type abstraction as done in module systems. The static semantics of F-zip adapts standard techniques to deal with linearity of typing contexts, its dynamic semantics is a small-step reduction semantics that performs extrusion of type abstraction as needed during reduction, and the two are related by subject reduction and progress lemmas. Applying the Curry-Howard isomorphism, F-zip can be also read back as a logic with the same expressive power as second-order logic but with more modular ways of assembling partial proofs. We also extend the core calculus to handle the double vision problem as well as type-level and term-level recursion. The resulting language turns out to be a new formalization of (a minor variant of) Dreyer's internal language for recursive and mixin modules. Benoît Montagu, Didier Rémy |
POPL | 2 |
| 2009 | Recasting MLF
Didier Le Botlan, Didier Rémy |
Inf. Comput. | 2 |
| 2008 | From ML to MLF: graphic type constraints with efficient type inferenceabstractMLF is a type system that seamlessly merges ML-style type inference with System-F polymorphism. We propose a system of graphic (type) constraints that can be used to perform type inference in both ML or MLF. We show that this constraint system is a small extension of the formalism of graphic types, originally introduced to represent MLF types. We give a few semantic preserving transformations on constraints and propose a strategy for applying them to solve constraints. We show that the resulting algorithm has optimal complexity for MLF type inference, and argue that, as for ML, this complexity is linear under reasonable assumptions. Didier Rémy, Boris Yakobowski |
ICFP | 1 |
| 2005 | Simple, partial type-inference for System F based on type-containmentabstractWe explore partial type-inference for System F based on type-containment. We consider both cases of a purely functional semantics and a call-by-value stateful semantics. To enable type-inference, we require higher-rank polymorphism to be user-specified via type annotations on source terms. We allow implicit predicative type-containment and explicit impredicative type-instantiation. We obtain a core language that is both as expressive as System F and conservative over ML. Its type system has a simple logical specification and a partial type-reconstruction algorithm that are both very close to the ones for ML. We then propose a surface language where some annotations may be omitted and rebuilt by some algorithmically defined but logically incomplete elaboration mechanism. Didier Rémy |
ICFP | 1 |
| 2003 | MLF: raising ML to the power of system FabstractWe propose a type system MLF that generalizes ML with first-class polymorphism as in System F. Expressions may contain second-order type annotations. Every typable expression admits a principal type, which however depends on type annotations. Principal types capture all other types that can be obtained by implicit type instantiation and they can be inferred.All expressions of ML are well-typed without any annotations. All expressions of System F can be mechanically encoded into MLF by dropping all type abstractions and type applications, and injecting types of lambda-abstractions into MLF types. Moreover, only parameters of lambda-abstractions that are used polymorphically need to remain annotated. Didier Le Botlan, Didier Rémy |
ICFP | 2 |
| 2002 | Guest Editorial: Foundations of Object-Oriented Languages
Kim B. Bruce, Didier Rémy |
Inf. Comput. | 2 |
| 2000 | Inheritance in the Join Calculus
Cédric Fournet, Cosimo Laneve, Luc Maranget, Didier Rémy |
FSTTCS | 4 |
| 1999 | Semi-Explicit First-Class Polymorphism for ML
Jacques Garrigue, Didier Rémy |
Inf. Comput. | 2 |
| 1998 | From Classes to Objects via Subtyping
Didier Rémy |
ESOP | 1 |
| 1997 | Implicit Typing à la ML for the Join-Calculus
Cédric Fournet, Cosimo Laneve, Luc Maranget, Didier Rémy |
CONCUR | 4 |
| 1997 | Objective ML: A Simple Object-Oriented Extension of MLabstractObjective ML is a small practical extension of ML with objects and toplevel classes. It is fully compatible with ML; its type system is based on ML polymorphism, record types with polymorphic access, and a better treatment of type abbreviations. Objective ML allows for most features of object-oriented languages including multiple inheritance, methods returning self and binary methods as well as parametric classes. This demonstrates that objects can be added to strongly typed languages based on ML polymorphism. Didier Rémy, Jérôme Vouillon |
POPL | 1 |
| 1996 | A Calculus of Mobile Agents
Cédric Fournet, Georges Gonthier, Jean-Jacques Lévy, Luc Maranget, Didier Rémy |
CONCUR | 5 |
| 1995 | Dynamic Typing in Polymorphic LanguagesabstractAbstract There are situations in programming where some dynamic typing is needed, even in the presence of advanced static type systems. We investigate the interplay of dynamic types with other advanced type constructions, discussing their integration into languages with explicit polymorphism (in the style of system F ), implicit polymorphism (in the style of ML), abstract data types, and subtyping. Martín Abadi, Luca Cardelli, Benjamin C. Pierce, Didier Rémy |
J. Funct. Program. | 4 |
| 1992 | Typing Record Concatenation for FreeabstractWe show that any functional language with record extension possesses record concatenation for free. We exhibit a translation from the latter into the former. We obtain a type system for a language with record concatenation by composing the translation with type-checking in a language with record extension. We apply this method to a version of ML with a record extension and obtain an extension of ML with either asymmetric or symmetric concatenation. The latter extension is simple, flexible and has a very efficient type inference algorithm in practice. Concatenation together with removal of fields needs one more construct than extension of records. It can be added to the version of ML with record extension. However, many typed languages with record cannot type such a construct. The method still applies to them, producing type systems for record concatenation without removal of fields. Object systems also benefit of the encoding which shows that multiple inheritance does not actually require the concatenation of records but only their extension. Didier Rémy |
POPL | 1 |
| 1989 | Typechecking Records and Variants in a Natural Extension of MLabstractStrongly typed languages with records may have inclusion rules so that records with more fields can be used instead of records with less fields. But these rules lead to a global treatment of record types as a special case. We solve this problem by giving an ordinary status to records without any ad hoc assertions, replacing inclusion rules by extra information in record types. With this encoding ML naturally extends its polymorphism to records but any other host language will also transmit its power. Didier Rémy |
POPL | 1 |