I see. I didn’t intend to redefine the type, only to add new information about how the types relate. But, it looks like this is related to the discussion about multiple inheritance. I’m not actually interested in multiple inheritance in this case (turning the type tree into a type lattice), just in ‘stretching’ the existing type tree by interposing a new node that I can stick new branches onto. But, if one were able to declare new supertypes after the fact, it would (in general) allow to create multiple inheritance, which is apparently a difficult feature to implement with multiple dispatch & hasn’t been done yet (might never be done). I’m curious if this simpler case would be easier to implement than the general case, but it’s probably not trivial either.
Thanks for the info about Holy traits. I think this probably good enough for what I am doing.