These Get(Type) functions are crying out to be templatized, but I also understand the value in spelling them out. And we should provide non-const versions to allow modify-in-place, move, and swap operations.