Make ModifyTypePreservingSTC package instead of private
Change assumeUTF to use ModifyTypePreservingSTC and thus support shared
Change representation to use ModifyTypePreserveSTC