Meta<T> (Function<? super TreeTraversal, ? extends TreeTraversal> interceptor) { if (interceptor == Functions.<TreeTraversal, TreeTraversal>identity()) return this; return new Meta<>(roots, traversal, tree, expand, regard, filter, forceExpand, forceIgnore, forceDisregard, Functions.compose(this.interceptor, interceptor), original); }