However, at the module level, the problem is more insidious. Commonly needed functionality or data that doesn’t fall into an obvious area of responsibility can get implemented many times over.
Auto suggestions and search by type address this. Being intentional about the contract and programmatically expose it.