Comment by bcherny

6 years ago

I wonder if you could approach this like you’d approach designing any other data structure, by first nailing down what operations you are optimizing for.

We could optimize for ease of iterating on the compiler, or for ease of integration into an ecosystem of various build systems. Or for correctness, consistency, compilation speed, etc.

Or, maybe it turns out that saving developers’ time is more important than any of these, as long as we keep all of these within reasonable bounds, since it’s by a factor of 10,000 the most common operation you’re going to be performing.