code: public static FunctionalType primitiveUnaryOperator(PrimitiveType type) {
      switch (type.getKind()) {
        case INT:
          return new FunctionalType(
              Type.from(IntUnaryOperator.class),
              "applyAsInt",
              ImmutableList.of(type),
              type);
  
        case LONG:
          return new FunctionalType(
              Type.from(LongUnaryOperator.class),
              "applyAsLong",
              ImmutableList.of(type),
              type);
  
        case DOUBLE:
          return new FunctionalType(
              Type.from(DoubleUnaryOperator.class),
              "applyAsDouble",
              ImmutableList.of(type),
              type);
  
        default:
          throw new IllegalArgumentException("No primitive unary operator exists for " + type);
      }
    }
docs: Returns one of {@link IntUnaryOperator}, {@link LongUnaryOperator} or
  {@link DoubleUnaryOperator}, depending on {@code type}.
  
  @throws IllegalArgumentException if {@code type} is not one of int, long or double