define macro graph { graph ( ?edges:* ) } => { begin let g = make(); ?edges; add-edges(g, list(?connections)); g; end } edges: { } => { } { ?connections ; ... } => { add-edges(g, list(?connections)) } connections: { ?node:name } => { ?"node" } { ?node:name -> ... } { ?"node", ... } end;