# \[RFC/WIP\] DuckDispatch.jl

**URL:** https://discourse.julialang.org/t/rfc-wip-duckdispatch-jl/114930
**Category:** Package Announcements
**Tags:** package, multiple-dispatch
**Created:** [May 29, 2024, 5:30pm UTC](https://discourse.julialang.org/t/rfc-wip-duckdispatch-jl/114930 "2024-05-29T17:30:52Z")
**Posts on this page:** 1
**Showing post:** 19

<div class="post-metadata">

### Author: ![oxinabox](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oxinabox/32/206603_2.png) [@oxinabox](https://discourse.julialang.org/u/oxinabox)
#### Post date: [May 31, 2024, 12:23pm UTC](https://discourse.julialang.org/t/rfc-wip-duckdispatch-jl/114930/19 "2024-05-31T12:23:54Z")

</div>

> [@Raf](#):
>
> for this topeic, I intentionally didn’t use `hasmethod` in [Interfaces.jl](https://juliahub.com/ui/Packages/General/Interfaces) because of the amount of false positives out there - fallback methods that just error with a warning are pretty common, as are fallback methods that “just work” on a lot of objects. We really need to run the method at some point to know if its actually properly defined

I feel we should really be able to use effects (and a little compile-time code analysisis) to break methods down into Always throws, vs May throw, vs Never throws

Probably even to getting a list of all exception types it might throw – should be a reasonable use of abstract interpetetation.  
Just having “Always throws” or not is enough to eliminate a ton of the false positives – namely the ones that that come from stub definitions that just throw “NotImplementedException”. And that should just need effects.

I just haven’t got round to looking into it.

---

_[View the full topic](https://discourse.julialang.org/t/rfc-wip-duckdispatch-jl/114930)._
