Previously, a type graph would turn into a type tree. That is, a deep node that is shared would have multiple copies made. This is important when creating IO and non-IO versions of deep types.