&quot;default &lt;T&gt; Extension&lt;T&gt; contraMap(Function&lt;T, S&gt; f) {
        return (T src, Results results) -&gt; Extension.this.apply(f.apply(src), results);
    }&quot;<p>Java 8 Lambdas provide such an elegant syntax for anonymous classes... When lambdas were first introduced in Java , a lot of people were underwhelmed by them. It is hard to evaluate at first the impact they can have on a well designed API.