&quot;I also think this might help with the quest on compile times.&quot;<p>It should have next to no effect. Opening source files for hashing them is still dirt cheap even compared to go compilation, since you are almost certainly pulling them out of OS cache in a pure-memory operation. Make sure you&#x27;re using either &quot;go install&quot; or &quot;go build -i&quot; if you aren&#x27;t already, and you&#x27;ll get the benefit of precompiled binaries where possible. The result should be that on average, most of the time is spent linking.<p>&quot;Also, perhaps making it less useful for commercial purposes was the last paragraph:&quot;<p>No, that&#x27;s normal. You always have to expose the public API, because otherwise you can&#x27;t use it. This has nothing to do with Go, this is a general rule. There&#x27;s no (useful) such thing as a library with a hidden public interface. (I suppose in some languages you could provide one and require users to reflect their way in, but this would be a coding challenge sort of thing, not something you&#x27;d buy.)