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 .