Functional interface for filtering.
When used as a functional interface, it will be ugly when dumped. If the filter evaluates sub-filters, implement Iterable to show them in the dumped tree.
The type the filter accepts
The type the filter returns
Formats the current filter as a tree, and returns the formatted string.
Evaluates the filter with the given value.