Creating the Scop name is expensive, because creating the Region name
it's derived from is expensive. So create the name lazily, because getName() is
actually called rarely.
Side note: getName() and getNameStr() return different things. Is this
intentional? Should it be unified?