I see. Feels quite bizarre, but if you feel it is justified (i.e. common enough) that somebody wants to pass a function rather than an object which implements a fetch_raster method then I'm OK with it (let's say luke warm). The only real reason I favour the other form is that I just think its pretty niche and therefore prefer the explicit form.

Make the call and I'll do it.