code: public F3<P1, P2, P3, Option<R>> lift() {
              final F3<P1, P2, P3, R> me = this;
              return new F3<P1, P2, P3, Option<R>>() {
                  @Override
                  public Option<R> apply(P1 p1, P2 p2, P3 p3) {
                      try {
                          return some(me.apply(p1, p2, p3));
                      } catch (RuntimeException e) {
                          return none();
                      }
                  }
              };
          }
docs: Turns this partial function into a plain function returning an Option result.
  
  @return a function that takes an argument x to Some(this.apply(x)) if this can be applied, and to None otherwise.