Connotational Subtyping and Runtime Class Mutability in Ruby