# 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:** 14

<div class="post-metadata">

### Author: ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)
#### Post date: [May 15, 2018, 12:52pm UTC](https://discourse.julialang.org/t/julep-taking-multiple-dispatch-export-import-binary-compilation-seriously/10882/14 "2018-05-15T12:52:54Z")

</div>

> [@TsurHerman](#):
>
> if module B does `using A` then  
> `start` is a qualified name in B.as well as `sum` (since Base is also used)

In my example, `B` isn’t calling `A.start` directly, it is calling `Base.sum`, and `Base.sum` (which knows nothing about A or B) is calling `Base.start` (which now needs to call A’s version if you want `sum` to be generic). As @yuyichao says, the only way to make this kind of thing work is if `Base.sum` “knows” about all `start` methods including `A.start`, which leads you back to essentially the current dispatch rules.

You are proposing vast changes in the language on the eve of Julia 1.0. There was just a [long thread](https://discourse.julialang.org/t/possibility-of-local-import-statements-in-future/10611) explaining why a closely related proposal is unworkable. We’ve told you that such changes are not needed to enable static compilation in the future, and that in fact static compilation has already been proved to work in other languages with similar generic-function semantics (and already happens in the Julia sysimg). You haven’t worked through even an example as simple as `Base.sum` — and despite decades of study on the semantics of generic functions in multiple-dispatch languages, you haven’t pointed to any work that models the semantics that you want. You begin the thread by suggesting that _we_ don’t currently take dispatch “seriously.” Is it so surprising that we don’t want to spend a lot of time debating you, trying to convert your proposal into a concrete algorithm and arguing its weak points?

By “armchair design” I’m referring to the practice of suggesting far-reaching changes and asking others to work out the details and the implementation. This is rarely successful.

---

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