PDF e-Pub

## Section: New Results

### Functional programming with $\lambda$-tree syntax

Participants : Ulysse Gerard, Dale Miller, Gabriel Scherer.

We have been designing a new functional programming language, MLTS, that uses the $\lambda$-tree syntax approach to encoding bindings that appear within data structures [20]. In this setting, bindings never become free nor escape their scope: instead, binders in data structures are permitted to move into binders within programs phrases. The design of MLTS—whose concrete syntax is based on that of OCaml—includes additional sites within programs that directly support this movement of bindings. Our description of MLTS includes a typing discipline that naturally extends the typing of OCaml programs.

In addition to the natural semantics for MLTS that we proposed in 2018, we also have a small-step operational semantics which gives in particular a fine-grained description of the runtime behavior of the $\nabla$ operator in patterns. It leads in particular to a direct implementation in Lambda-Prolog (which does not contain a native $\nabla$ operator) that allows more expressive constructs (higher-arity types) than our previous presentation.