I don't think we need to make "quite sure". That's the job of the `Aggregator.aggregate()` method. The call to `iris.util.ensure_array()` within `post_process` is a bit smelly anyway (actually the whole method is a bit smelly), so I wouldn't want to use that to drive other design decisions.

So yes, I think we can leave the structure of this as it stands. But I would use the public API instead of `_my_data`. In other words: `collapsed_cube.lazy_data(data_result)`.