Since `obj` can be something other than an object, perhaps `val` makes more sense as a name?