@willtebbutt and I were talking,
extern doesn't mean much without context.
maybe we have unthunk which is defined on AbstractThunks
and everything else just handles this during + Most other information you need is available at +, from the other object.