  We present the design of a new functional programming language, MLTS, that
uses the lambda-tree syntax approach to encoding bindings appearing within data
structures. In this approach, bindings never become free nor escape their
scope: instead, binders in data structures are permitted to move to binders
within programs. The design of MLTS includes additional sites within programs
that directly support this movement of bindings. In order to formally define
the language's operational semantics, we present an abstract syntax for MLTS
and a natural semantics for its evaluation. We shall view such natural
semantics as a logical theory within a rich logic that includes both *nominal
abstraction* and the *nabla-quantifier*: as a result, the natural semantics
specification of MLTS can be given a succinct and elegant presentation. We
present a typing discipline that naturally extends the typing of core ML
programs and we illustrate the features of MLTS by presenting several examples.
An on-line interpreter for MLTS is briefly described.
