class Function2D implements Function<S, T> {

  @SuppressWarnings("unchecked")
  @Override
  public T evaluate(final S... x) {
    ArgumentChecker.noNulls(x, "parameter list");
    ArgumentChecker.isTrue(x.length == 2, "parameter list must be of length 2");
    return evaluate(x[0], x[1]);
  }

}