Abstract type enumeration and interface

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!

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.