* `evaluate` and `evaluate_recursive` also works for methods as well as for functions.
0.29.0
~~~~~~~~~~~~~~~~~~~
* Fixed loop detection in flatten for `Namespace`\ s. This resulted in data corruption.
0.28.0
~~~~~~~~~~~~~~~~~~~
* Added `Namespace` subclass of `tri.struct.Struct` to explicit capture the path splitting semantics. (And added method for flattening a `Namespace` back to path notation.)
0.27.0
~~~~~~~~~~~~~~~~~~~
* Fix bug in `evaluate` signature detection with optional arguments. (`lambda a, b=17: a+b` was correctly matched but `lambda b, a=17: a+b` was not)
0.26.0
~~~~~~~~~~~~~~~~~~~
* Added `EMPTY` marker to `setdefaults_path` to avoid mixup when empty dict is provided in function defaults.