digraph {
    node [shape="point"]
    Call [label="Call",shape="oval"]
    CallString [label="'call'",shape="oval",color="green"]
    Phase [label="'init'",shape="oval"]
    NewEvalStack [color="green"]
    Param [color="red"]
    
    Root -> UserRoot [label="username"]
    UserRoot -> Frame [label="'frame'"]
    Frame -> Call [label="'IP'",color="blue",style="dashed"]
    Frame -> Phase [label="'phase'"]
    Frame -> OldEvalStack [label="'evalstack'",color="blue",style="dashed"]
    Frame -> NewEvalStack [label="'evalstack'",color="green",penwidth=4]
    NewEvalStack -> OldEvalStack [label="'prev'",color="green",penwidth=4]
    Call -> Func [label="'func'"]
    Call -> Param [label="'params'",color="red",style="dotted"]
    Frame -> Func [label="'IP'",color="green",penwidth=4]
    OldEvalStack -> Call [label="'inst'",color="green",penwidth=4]
    OldEvalStack -> CallString [label="'phase'",color="green",penwidth=4]
}
