=str #15755 #15756 source and sink

sorry, deleted the old branch by accident, previous discussion was at #15786 
Yes, `super` is possibly bound to a trait that is mixed in before this one, but the intention is mostly to guard against case classes doing the wrong thing (which it does). And we shouldn’t touch `System.identityHashCode` with a ten foot pole ;-)