Multipass vs Multiexecution
=============================
Dehydra will remain a single-pass program.
Instead, persistent storage will be added, probably something like sqlite. This could record attributes inferred on functions and then take action on them upon re-execution.

Unique ID for functions
-----------------------
Use function name with optional srcloc info.
Annotations will be attached to the function ID

Callgraph
----------
Call graph inference would be just another use of function attributes. Eg..every function called from another func could be an attribute.

Multiple Execution + persistent storage enables x-module analysis, since more modules could be processed in subsequent runs

A [possibly final] linking stage could construct the callgraph or just add more attributes for further execution.

Converting Methods to Use Return Value
======================================
A method can be converted to return value instead out-param if it it only every returns NS_OK
Need to add constants to dehydra to verify that

Attribute support
===================
foo->bla isn't really supported using the uno-style api. Perhaps should move to nested data structures, like
{ isUse:true, isArrow:true, name:"bla", target:{name:"foo", id:12121}}