# Function name conflict: ADL / function merging?

**URL:** <https://discourse.julialang.org/t/function-name-conflict-adl-function-merging/10335>\
**Category:** Internals & Design\
**Tags:** proposal, namespaces\
**Created:** [April 14, 2018, 5:16pm UTC](https://discourse.julialang.org/t/function-name-conflict-adl-function-merging/10335 "2018-04-14T17:16:17Z")\
**Posts on this page:** 1\
**Showing post:** 86

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [April 17, 2018, 2:08pm UTC](https://discourse.julialang.org/t/function-name-conflict-adl-function-merging/10335/86 "2018-04-17T14:08:58Z")

</div>

> [@tkoolen](#):
>
> My initial guess is that it would require a set of rules that work pretty well 95% of the time, but are fairly complicated and thus cause quite a bit of confusion 5% of the time. Regardless, the rock-solid solution for package developers would still probably be to avoid using using, as witnessed by Google’s C++'s style guide, [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html#Namespaces), “Do not use using-directives (e.g. using namespace foo).”. On the other hand, this approach could still be a win in code that doesn’t need to be of ‘production’ quality.

I think the best approach may be to have an “explicit import bot” that goes around making PRs to packages to turn `using X` into explicit imports of the names in `X` that are actually used. That way people can write code with `using` for convenience but the bot would make the meanings explicit for them and also future-proof their code.

---

_[View the full topic](https://discourse.julialang.org/t/function-name-conflict-adl-function-merging/10335)._
