I wouldn't say I fell in love, but Java 8 streams are quite nice.
But then there are generics...
@winniehell Basically Java 8 telling you "Please do not push this button again!"
@blinry The button was to run my game. 😢
So I figured I avoid all the hassle by using Stream<A> everywhere and casting into B where necessary.
This makes my clean code heart cry a little.
This was the result of trying to concatenate Stream<A> and Stream<B> into a new Stream<A> where B extends A.