I do think that the 3 types of regions are useful, even if they are not in the example. It is consistent with the niimg concept.
Maybe we could only have 3 functions: region.to_array, region.to_label and region.to_list ?