Influences

Delta merges influences from many sources that I'd like to acknowledge here.

Current-day functional languages:
 * Avoid mutable objects (you lose in-place updates but get easy copy-on-write).
 * Code easily transformed between "do it now" and "do it when called for".
 * Sum types, i.e. typesafe unions-of-structs. These are surprisingly useful in a multitude of situations.
 * Minimal syntax.

Eiffel:
 * In-language assertion support for testing, validation, and documentation purposes.
 * Function renaming. Taxing on tools but indispensable for multiple interface support.

Erlang:
 * How to plan for crashes.

Alice ML:
 * Unforgeable capabilities.

Various unattributable influences:
 * Best-effort static assertion checking.
 * Statically uncheckable assertions optionally checked at run time.
 * Types are just assertions.
 * Code versioning.

Original work:
 * An object can have multiple interfaces, even the same interface more than once. (E.g. Integers have two distinct Monoid interfaces, one for addition, one for multiplication.)
 * Mutable data is automatically locked as needed, based on which of them influence the validity of preconditions or postconditions.
 * The concrete choice of extensible syntax.