# Abstract type enumeration and interface

**URL:** https://discourse.julialang.org/t/abstract-type-enumeration-and-interface/110723
**Category:** New to Julia
**Tags:** type-hierarchy
**Created:** [February 25, 2024, 3:51am UTC](https://discourse.julialang.org/t/abstract-type-enumeration-and-interface/110723 "2024-02-25T03:51:19Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![thinhle](https://avatars.discourse-cdn.com/v4/letter/t/ee59a6/32.png) [@thinhle](https://discourse.julialang.org/u/thinhle)
#### Post date: [February 25, 2024, 3:51am UTC](https://discourse.julialang.org/t/abstract-type-enumeration-and-interface/110723/1 "2024-02-25T03:51:19Z")

</div>

Might be a redundant question but after a quick search I could not find what I need. Say I am `using SomeModule`, what’s the recommended way to explore all abstract types defined in this module and also in `Base` (presumably loaded on start up)? Is there a way to explore all abstract types defined in the whole Julia ecosystem? How about interfaces that come defined with these abstract types? Thanks!

---

<div class="post-metadata">

### Author: ![screw\_dog](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/screw_dog/32/48119_2.png) [@screw\_dog](https://discourse.julialang.org/u/screw_dog)
#### Post date: [February 25, 2024, 5:47am UTC](https://discourse.julialang.org/t/abstract-type-enumeration-and-interface/110723/2 "2024-02-25T05:47:01Z")

</div>

The basic tools provided are in the `InteractiveUtils` package which is loaded by default in the REPL. The main functions `subtypes`, `supertypes`, and `methodswith` allow for exploration of the currently loaded type tree and methods defined on a particular type.

I suspect there’s a more fully featured package out there but these are the basics.
