@SuppressWarnings("unchecked")
    @Override
    public <U> U chain(Function<? super S, U> mapper) {
        return mapper.apply((S)this);
    }
@ SuppressWarnings ( "unchecked" ) @ Override public < U > U chain ( Function < ? super S , U > mapper ) { return mapper . apply ( ( S ) this ) ; }
Necessary to generate proper JavaDoc