Titan is a development for optimisable incremental search and enumeration. In Titan, programs produce enumerations of solutions to queries by matching over enumerations of solutions to other queries. For this, Titan defines:
Titan's reference language is extremely simple: it is just a preorder traversal of trees representing terms. The caveat is that Titan also allows partial application (per the requirement of incremental search), so parentheses are required if a function must be partially applied.
Titan's standard library is divided into three major parts: Environment, Language, and Algorithms. All definitions in the standard library are abstract data types. Only the Language part is mandatory, and the two other parts can be defined in terms of it.