static Tag internCustom(Tag t) {
    return (t instanceof BasicTag) ? t : newTag(t.getKey(), t.getValue());
  }
static Tag internCustom ( Tag t ) { return ( t instanceof BasicTag ) ? t : newTag ( t . getKey ( ) , t . getValue ( ) ) ; }
Interns custom tag types, assumes that basic tags are already interned. This is used to
ensure that we have a common view of tags internally. In particular, different subclasses of
Tag may not be equal even if they have the same key and value. Tag lists should use this to
ensure the equality will work as expected.