News for hackers. Stuff that matters.
Re:Background: how we got the generics we have (2020) by p2t2p on Thursday April 01, 2021 @10:12PM (#26668460)
The only caveat is that if you change `Iterable<Integer>` to say `Iterable<String>` the compilation error becomes a bit weird in that it says you provide `Iterable<Object>` while `Iterable<String>` is requested. But you do get compile time check after all.
Re:Background: how we got the generics we have (2020) by mrkeen on Friday April 02, 2021 @04:17PM (#26675490)
T is not R though. I want to preserve the static type information such that if I call:

    baz(bar(foo(t, f)));
T<A> should go into foo(..) and come out (e.g. as T<B>) such that I can then call bar(..) on it.

But in this case it leaves foo(..) as R extends Fooable, which is not something I can pass into bar(..).