@rhattersley okay I'm splitting hairs here ...

There's been a couple of times now where I've come back to this method to remind myself what exactly `has_data` means. I guess I'm being all rather :older_man:, but for me a cube *always* has data. The real question is whether that data is *lazy* or *concrete*.

In `test_cdm.py` L923:928 you defined the convenience methods `is_lazy` and `is_concrete` which makes the testing crystal clear ... would you consider extending the cube API to include such methods on the `Cube` and remove `has_data` ?