Hi,<div><br></div><div>While adding some package checks for the new benchmark section I came up with some questions regarding section names. I think we need to clarify the design here.</div><div><br></div><div>Which things live in the same namespace? The current checks seems inconsistent:</div>

<div><br></div><div>* The library (i.e. package name) and executables live in different namespaces and thus there&#39;s no check that executables don&#39;t share the library name.</div><div><br></div><div>* The executables and test suites live in the same namespace:</div>

<div><br></div><div><div>  , check (not (null testsThatAreExes)) $</div><div>      PackageBuildImpossible $ &quot;These test sections share names with executable sections: &quot;</div><div>        ++ commaSep testsThatAreExes</div>

</div><div><br></div><div>* The test suites and the library live in the same namespace:</div><div><br></div><div><div>  , check libNameClash $</div><div>      PackageBuildImpossible $</div><div>           &quot;The test suite &quot; ++ testName test</div>

<div>        ++ &quot; has the same name as the package.&quot;</div></div><div><br></div><div>I think the latter is wrong. I think the executable, test suite, and benchmark names should live in the same namespace and the package (and thus library) name should be in a different one. Do you agree? If we all agreed then I will remove the check for test suites/library name clashes above and add a check that checks all pairs of executable, test suite, and benchmark names.</div>

<div><br></div><div>Cheers,</div><div>Johan</div><div><br></div>