The (many different) hashCode implementations of ISourceLocation simply add the hashcodes of their constituent strings. * find out how bad this distribution gets, and if its worth coming up with a better but more expensive computation * improve the computation if needed.