I think I can summarize what you are doing here. You want to define the list method once.
That makes sense. Maybe there's another way we can address this which doesn't leak references for simple case. For example (excuse the bad name) ```java Lister<Poo> pooLister = api.list(); ListWithMarker<Poo> firstPageOfPoo = pooLister.first(); ListWithMarker<Poo> nextPageOfPoo = pooLister.next(firstPageOfPoo.marker()); Iterable<Poo> flowingPoo = pooLister.continuation(); Subscription<Poo> whoahRx = pooLister.subscribe(pooObserver); ``` In this case, the special casing is in the `Lister` type, or better named decouples us. For the simple case, you can call first() and not leak references out. Not saying we support rx or streams in the future, but that support would be bound to the `Lister` type and could much more easily deal with platform differences inheritance of an Iterable type. --- Reply to this email directly or view it on GitHub: https://github.com/jclouds/jclouds-labs-google/pull/62#issuecomment-60184177
