# Abstract Interfaces (Dicts, IOs, etc) Going to be Documented?

**URL:** https://discourse.julialang.org/t/abstract-interfaces-dicts-ios-etc-going-to-be-documented/20377
**Category:** New to Julia
**Created:** [February 2, 2019, 11:02am UTC](https://discourse.julialang.org/t/abstract-interfaces-dicts-ios-etc-going-to-be-documented/20377 "2019-02-02T11:02:28Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Zach\_Christensen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/zach_christensen/32/7220_2.png) [@Zach\_Christensen](https://discourse.julialang.org/u/Zach_Christensen)
#### Post date: [February 2, 2019, 11:02am UTC](https://discourse.julialang.org/t/abstract-interfaces-dicts-ios-etc-going-to-be-documented/20377/1 "2019-02-02T11:02:28Z")

</div>

Are interfaces to AbstractDicts, IOs, and other things planned to be documented in the future (similar to how AbstractArrays, iterators, etc) or somewhere that I’ve completely missed? I’ve found docstrings that give hints to what kind of support one should add for these but I haven’t found a dedicated space that expounds on this.

---

<div class="post-metadata">

### Author: ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)
#### Post date: [November 9, 2019, 4:32pm UTC](https://discourse.julialang.org/t/abstract-interfaces-dicts-ios-etc-going-to-be-documented/20377/2 "2019-11-09T16:32:19Z")

</div>

Basically, this came up again in [Creating custom types in Julia - Stack Overflow](https://stackoverflow.com/questions/58779529/creating-custom-types-in-julia)

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [November 10, 2019, 5:03am UTC](https://discourse.julialang.org/t/abstract-interfaces-dicts-ios-etc-going-to-be-documented/20377/3 "2019-11-10T05:03:39Z")

</div>

The best way to get an interface documented is to either open an issue (if one does not exist), or if the API is otherwise mature, proceed to a PR.

I am not sure that a subsection in [Interfaces](https://docs.julialang.org/en/v1/manual/interfaces/) is warranted for all abstract types. In most cases a docstring for `AbstractSomething` could be enough.

---

<div class="post-metadata">

### Author: ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)
#### Post date: [November 10, 2019, 11:58am UTC](https://discourse.julialang.org/t/abstract-interfaces-dicts-ios-etc-going-to-be-documented/20377/4 "2019-11-10T11:58:18Z")

</div>

Thinking about this a bit more, I think that in `Base` (and similarly, most complex Julia codebases) there is a spectrum between abstract types

1. serving as mere _implementation details_ (eg a way of organizing dispatch), and

2. interfaces to be extended.

Eg `AbstractCartesianIndex` is a clear example of (1) (it says so in its comment), while `AbstractArray` is (2). I suspect a lot of other types are in between — perhaps not with the original intent, but given how the code evolved. It would be better to clarify this first.
