@@ -0,0 +1,486 @@
+package org.xander.behavioral.lazyevaluation;%0A%0Apublic class TailCalls %7B%0A    public static %3CT%3E TailCall%3CT%3E call(final TailCall%3CT%3E nextCall) %7B return nextCall; %7D%0A    public static %3CT%3E TailCall%3CT%3E done(final T value) %7B %0A        return new TailCall%3CT%3E() %7B%0A            @Override public boolean isComplete() %7B return true; %7D%0A            @Override public T result() %7B return value; %7D %0A            @Override public TailCall%3CT%3E apply() %7B throw new Error(%22not implemented%22); %7D%0A        %7D;%0A    %7D%0A%7D%0A

Create TailCalls.java