digraph {
    node [shape="point"]
    Call [label="Call",shape="oval"]
    Phase [label="'call'",shape="oval",color="blue"]
    NewPhase [label="'finish'",color="green",shape="oval"]
    NVariable [color="green"]
    mid [color="green",width=0]
    ParamA_mid [width=0]
    Name_actual [label="a",shape="oval"]
    
    Root -> UserRoot [label="username"]
    UserRoot -> Frame [label="'frame'",color="blue",style="dashed"]
    UserRoot -> NewFrame [label="'frame'",color="green",penwidth=4]
    Frame -> Call [label="'IP'"]
    Frame -> Phase [label="'phase'",color="blue",style="dashed"]
    Frame -> NewPhase [label="'phase'",color="green",penwidth=4]
    Call -> ParamN [label="'last_param'"]
    Frame -> ReturnValue [label="'returnvalue'"]

    ParamN -> Name_actual [label="'name'"]

    NewFrame -> NSymbols [label="'symbols'"]
    NewFrame -> Frame [label="'prev'"]
    NewFrame -> Call [label="'caller'"]
    NewFrame -> Body [label="'IP'"]
    Signature -> Body [label="'body'"]
    Signature -> Params [label="'params'"]

    NSymbols -> mid [arrowhead="none",color="green",penwidth=4]
    mid -> NVariable [color="green",penwidth=4]
    NVariable -> ReturnValue [color="green",label="'value'",penwidth=4]
    mid -> ParamA [color="green",penwidth=4]
    Params -> ParamA [label="a"]
}
