Simple implementation of behaviour trees, in Common Lisp. Nodes are implemented as functions (methods specialising on the actor's class and behaviour's name). Nodes can intermix other nodes with arbitrary lisp expressions. Nodes signal failure by returning nil, and success by returning some other value.
The Common Lisp condition system is used to exit from the tree when necessary (for example, when a time-consuming action is undertaken, or when the actor dies).
More documentation and examples to come.