title: Disallow usage of the same ID
body: <p>We are using some binary serializer and it requires us to register a serializer with an ID.</p>
  
  <p>So we have a huge file which is something like this</p>
  
  <pre><code>...
  registerSerializer(classOf[SomeClass1], SomeClass1Serializer, id = 3456)
  registerSerializer(classOf[SomeClass2], SomeClass2Serializer, id = 3457)
  registerSerializer(classOf[SomeClass3], SomeClass3Serializer, id = 3458)
  ...
  </code></pre>
  
  <p>The bigger the file, the more merge conflicts, the higher the chance (and it has happened already) that the same ID might be used more than once (which is bad).</p>
  
  <p>Can we ask Scala compiler to help us here? What would be the approach were it will be a compilation error if the same id is reused? Any approach that doesn't use macros?</p>