code: public F0<R> compose(final Func0<? extends P1> before) {
              final F1<P1, R> me = this;
              return new F0<R>() {
                  @Override
                  public R apply() {
                      return me.apply(before.apply());
                  }
              };
          }
docs: Returns an {@code F0&lt;R&gt;>} function by composing the specified {@code Func0&ltP1&gt;} function
  with this function applied last
  
  @param before
  the function to be applied first when applying the return function
  @return an new function such that f() == apply(f0())