@Retention(value=RUNTIME)
@Target(value=TYPE)
public @interface Input
This annotation is used to mark the input type for a functional interface which
uses generics, like LongFunction, IntFunction, or Function.
It is only used when then input type of a function can't be found via reflection.