## "meta"-tools


|                                         | Julia                   | Python                      |
|------------------------|------------------------|------------------------|
| Documentation                           | `?obj`                  | `help(obj)`                 |
| Object content                          | `dump(obj)`             | `print(repr(obj))`          |
| Exported functions                      | `names(FooModule)`      | `dir(foo_module)`           |
| List function signatures with that name | `methods(myFun)`        |                             |
| List functions for specific type        | `methodswith(SomeType)` | `dir(SomeType)`             |
| Where is ...?                           | `@which func`           | `func.__module__`           |
| What is ...?                            | `typeof(obj)`           | `type(obj)`                 |
| Is it really a ...?                     | `isa(obj, SomeType)`    | `isinstance(obj, SomeType)` |

## debugging
|||
|--|--|
`@run sum(5+1)`| run debugger, stop at error/breakpoints
`@enter sum(5+1)` | enter debugger, dont start code yet
`@show variable` | prints: variable = variablecontent
`@debug variable` | prints only to debugger, very convient in combination with `>ENV["JULIA_DEBUG"] = ToBeDebuggedModule` (could be `Main` as well)

