Do I understand your decision here correctly: by making this a namespace instead of a struct, we force all `template<>`s to use whatever class they focus on, e.g. `Group<max_dim>::some_typedef`? I haven't thought through this...