# Julep: Taking multiple dispatch,export,import,binary compilation seriously

**URL:** <https://discourse.julialang.org/t/julep-taking-multiple-dispatch-export-import-binary-compilation-seriously/10882>\
**Category:** Internals & Design\
**Tags:** namespaces\
**Created:** [May 14, 2018, 9:58am UTC](https://discourse.julialang.org/t/julep-taking-multiple-dispatch-export-import-binary-compilation-seriously/10882 "2018-05-14T09:58:33Z")\
**Posts on this page:** 1\
**Showing post:** 77

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [May 16, 2018, 7:38pm UTC](https://discourse.julialang.org/t/julep-taking-multiple-dispatch-export-import-binary-compilation-seriously/10882/77 "2018-05-16T19:38:44Z")

</div>

> [@jlperla](#):
>
> At this point it is not clear if **any** language with first-class functions has really cracked the problem of coexisting with namespaces in a way that doesn’t require merging all operators into a single namespace.

Sure there is, its name is Julia. We don’t require merging functions, and jamming puns into Base functions really isn’t all that common. Infix operators are indeed tricky, as they aren’t namespace-able, but that’s one of the reasons we have _so many_ unicode infix operators — to allow folks to write compact syntax that _doesn’t_ have difficulties with generic programming.

With ADL, it would _simply not be possible_ to write a cromulent function that uses a function named `fit!` with our existing ecosystem unless you explicitly enumerate all the argument types that support your meaning of `fit!`. Ref this comment: [Function name conflict: ADL / function merging? - #92 by mbauman](https://discourse.julialang.org/t/function-name-conflict-adl-function-merging/10335/92)

Now, I agree there’s a pain point when two modules export the same (un-merged) name. That’s annoying. That’s why my concrete and simple suggestion above is a tool (editor tool, ideally) that allows you to automatically flush out the names to be explicitly used from a `using: …`. And there’s a pain point in having a place where package developers can agree on common names to extend, but that discussion needs to happen somewhere for downstream users to make sense of it all.

---

_[View the full topic](https://discourse.julialang.org/t/julep-taking-multiple-dispatch-export-import-binary-compilation-seriously/10882)._
