public static @NotNull <A> Function<Pair<A, ?>, A> pairFirst() {
    //noinspection unchecked
    return (Function<Pair<A,?>, A>)(Function<?,?>)PAIR_FIRST;
  }
public static @NotNull <A> Function<Pair<A, ?>, A> pairFirst()