@ SuppressWarnings ( "unchecked" ) public static < E > Function < E , E > identity ( ) { return ( Function < E , E > ) IdentityFunction . INSTANCE ; }
implementation is fully variant ; E has become a pass - through type