Controlling a complicated application with an embedded, interpreted
language can have significant software-engineering benefits.
But existing interpreters are designed for embedding into C~code.
To embed an interpreter into a different language requires a suitable
API.
Lua-ML is a new API that uses higher-order functions and types
to simplify the use of an embedded interpreter.
Most application-program functions can be
added to an interpreter simply by describing their types.