strict digraph faustflow { root=syntax; ordering=out; simple[label="3.1 Simple"]; fundef[label="3.2 Function"]; patdef[label="3.3 Pattern"]; diag[label="4.1 Diag."]; math[label="4.2.1 Math"]; bit[label="4.2.2 Bitwise"]; cmp[label="4.2.3 Compare"]; time[label="4.3 Time"]; env[label="4.4 Lexical"]; foreign[label="4.5 Foreign"]; prog[label="4.6 Lambda"]; node[shape=box, color=blue, fillcolor=lightblue, style=filled]; syntax[label="1 Program"]; statement[label="2 Statements"]; definition[label="3 Definitions"]; expr[label="4 Expressions"]; prim[label="5 Primitives"]; infix[label="4.2 Numericals"]; syntax->statement; syntax->definition; syntax->expr; syntax->prim; definition->simple; definition->fundef; definition->patdef; expr->diag; {rank=same; expr simple} expr->infix; infix->math; infix->bit; infix->cmp; expr->time; expr->env; expr->foreign; expr->prog; }