# \[ANN\] ManualDispatch.jl

**URL:** <https://discourse.julialang.org/t/ann-manualdispatch-jl/47346>\
**Category:** Package Announcements\
**Tags:** dispatch\
**Created:** [September 27, 2020, 2:39am UTC](https://discourse.julialang.org/t/ann-manualdispatch-jl/47346 "2020-09-27T02:39:25Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

**Author:** ![tisztamo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tisztamo/32/16200_2.png) [@tisztamo](https://discourse.julialang.org/u/tisztamo)\
**Post date:** [September 27, 2020, 8:39pm UTC](https://discourse.julialang.org/t/ann-manualdispatch-jl/47346/13 "2020-09-27T20:39:12Z")

</div>

> [@jebej](#):
>
> I thought the whole point of union splitting was to do this automatically, as explained in this blog post: [https://julialang.org/blog/2018/08/union-splitting/](https://julialang.org/blog/2018/08/union-splitting/). Why is this faster?

Because abstract types can be extended with new subtypes, while unions cannot:

> [@Union splitting over abstract types](https://discourse.julialang.org/t/union-splitting-over-abstract-types/45568):
>
> If I have an abstract type X whose only subtypes are A and B, will union-splitting kick in and make dispatching over an object inferred as X as efficient as dispatching over one inferred as Union{A, B}?

---

_[View the full topic](https://discourse.julialang.org/t/ann-manualdispatch-jl/47346)._
