# Diagram with all Julia types?

**URL:** <https://discourse.julialang.org/t/diagram-with-all-julia-types/5018>\
**Category:** General Usage\
**Created:** [July 22, 2017, 11:15am UTC](https://discourse.julialang.org/t/diagram-with-all-julia-types/5018 "2017-07-22T11:15:54Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Juan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juan/32/7657_2.png) [@Juan](https://discourse.julialang.org/u/Juan)\
**Post date:** [July 22, 2017, 11:15am UTC](https://discourse.julialang.org/t/diagram-with-all-julia-types/5018/1 "2017-07-22T11:15:54Z")

</div>

Hello.

Is there any big diagram showing all Julia types together?

I’ve found several partial diagrams such as

 ![](https://global.discourse-cdn.com/julialang/original/3X/e/6/e61bcc229dcd3b583b371e613d2a1247c16134a3.png)  
 ![](https://global.discourse-cdn.com/julialang/original/3X/a/6/a665cb8924805fb5bcbe7af23c859c6e502a2329.png)  
 ![](https://global.discourse-cdn.com/julialang/original/3X/3/6/36b1c6ce0023fd577906b3e9f2b2cf9407a6d3e0.png)

But do you know where can find a diagram with all these (and more) together?

---

<div class="post-metadata">

**Author:** ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)\
**Post date:** [July 22, 2017, 11:50am UTC](https://discourse.julialang.org/t/diagram-with-all-julia-types/5018/2 "2017-07-22T11:50:26Z")

</div>

I recognise two of those graphs… 🙂

A graph showing most of them is a PDF 2129.48 cm wide and only 16.8 cm tall. About 70 feet wide. It could be an interesting project to get it printed.

Here’s what the left hand end of the graph looks like (it’s about 5% of the image):

 ![](https://global.discourse-cdn.com/julialang/original/3X/0/5/05e7d4b33060ca9e6f091d8ebde3a54a109787c9.png)

Here’s an interesting section to the right:

 ![](https://global.discourse-cdn.com/julialang/original/3X/a/f/aff60cba0dee84ecc693ae9a74dd975125d6fd30.png)

---

<div class="post-metadata">

**Author:** ![bicycle1885](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bicycle1885/32/107_2.png) [@bicycle1885](https://discourse.julialang.org/u/bicycle1885)\
**Post date:** [July 22, 2017, 11:56am UTC](https://discourse.julialang.org/t/diagram-with-all-julia-types/5018/3 "2017-07-22T11:56:34Z")

</div>

A script that prints an ASCII diagram can be found in the Julia repository: [https://github.com/JuliaLang/julia/blob/master/examples/typetree.jl](https://github.com/JuliaLang/julia/blob/master/examples/typetree.jl).

---

<div class="post-metadata">

**Author:** ![Juan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juan/32/7657_2.png) [@Juan](https://discourse.julialang.org/u/Juan)\
**Post date:** [July 22, 2017, 12:50pm UTC](https://discourse.julialang.org/t/diagram-with-all-julia-types/5018/4 "2017-07-22T12:50:07Z")

</div>

Great.  
I guess it would be easier to read it if it were vertical.  
How could I generate it vertically?

---

<div class="post-metadata">

**Author:** ![cormullion](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cormullion/32/49131_2.png) [@cormullion](https://discourse.julialang.org/u/cormullion)\
**Post date:** [July 22, 2017, 1:55pm UTC](https://discourse.julialang.org/t/diagram-with-all-julia-types/5018/5 "2017-07-22T13:55:11Z")

</div>

A bit more manageable at only 20 feet tall. Here’s the top of it:

 ![](https://global.discourse-cdn.com/julialang/original/3X/4/8/4884222f1d7ef9f08faae3e214412b430e4f7bb9.png)

I’m not sure it’s very useful; you’d do better to explore the areas you’re interested in at the REPL…

---

<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:** [July 22, 2017, 2:15pm UTC](https://discourse.julialang.org/t/diagram-with-all-julia-types/5018/6 "2017-07-22T14:15:07Z")

</div>

An interactive “browser” showing super-, sub-, and sibling types could be an interesting project though.

---

<div class="post-metadata">

**Author:** ![harven](https://avatars.discourse-cdn.com/v4/letter/h/3da27b/32.png) [@harven](https://discourse.julialang.org/u/harven)\
**Post date:** [July 22, 2017, 8:01pm UTC](https://discourse.julialang.org/t/diagram-with-all-julia-types/5018/7 "2017-07-22T20:01:40Z")

</div>

There is [typetree.jl](https://github.com/johnmyleswhite/TypeTree.jl) (probably not up to date for v0.6).

See [there](http://johnmyleswhite.com/typetree/tree.html) for the v0.2 tree produced by typetree.jl. Here is a [link](https://groups.google.com/d/topic/julia-users/ECkQa8vAkko/discussion) to the previous julia forum on google groups that discusses the topic of producing a diagram of the types tree.

---

<div class="post-metadata">

**Author:** ![harven](https://avatars.discourse-cdn.com/v4/letter/h/3da27b/32.png) [@harven](https://discourse.julialang.org/u/harven)\
**Post date:** [July 22, 2017, 8:28pm UTC](https://discourse.julialang.org/t/diagram-with-all-julia-types/5018/8 "2017-07-22T20:28:24Z")

</div>

The type graph is big because all functions are subtypes of the function type. If you remove the function type and its subtypes, the graph becomes far more reasonable to display.

---

<div class="post-metadata">

**Author:** ![djsegal](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/djsegal/32/13752_2.png) [@djsegal](https://discourse.julialang.org/u/djsegal)\
**Post date:** [July 23, 2017, 1:18am UTC](https://discourse.julialang.org/t/diagram-with-all-julia-types/5018/9 "2017-07-23T01:18:07Z")

</div>

I think this graph view is the preferred method some use to learn a codebase. // i.e. not just Julia’s type system

Maybe it could be generalized along the lines brought forward in:

> [@Way to plot graph of codebase? (i.e. function circles and dependency arrows)](https://discourse.julialang.org/t/way-to-plot-graph-of-codebase-i-e-function-circles-and-dependency-arrows/3450):
>
> I’m getting to the point where I have a decent amount of functions in my codebase. I was wondering if there was a way to automatically construct an image w/ a graph showing: the functions, macros, etc their interdependencies edit: i.e., something like this [stack overflow post](http://stackoverflow.com/questions/517589/tools-to-get-a-pictorial-function-call-graph-of-code)
