\section*{Order Analysis} \begin{frame} \frametitle{Interfaces and Dependencies} \begin{center} \begin{tikzpicture} [ visit/.style={circle, minimum size=14mm, very thick, draw=blue!50!black!50, top color=white, bottom color=blue!50!black!20,font=\footnotesize} , svisit/.style={circle, minimum size=13mm, thick, draw=blue!40!black!30, top color=white, bottom color=blue!40!black!15,font=\scriptsize} , vbox/.style={rectangle, very thick, draw=black!100} , attr/.style={rectangle, very thick, draw=black!50, top color=white, bottom color=black!20,font=\footnotesize} , itf/.style={font=\large} , arr/.style={->,thick} , annot/.style={font=\footnotesize} , node distance=12mm ] \node[visit] (vGath) {gather}; \node[visit, right of=vGath, xshift=20mm] (vSpread) {distribute}; \node[attr, below of=vGath] (gathEnv) {|gathEnv :: Env|}; \node[attr, above of=vSpread] (finEnv) {|finEnv :: Env|}; \node[itf,left of=vGath, xshift=-3mm](name){|Name:|}; \draw[arr] (vSpread) to (vGath); \node[itf,below of=name,yshift=-22mm](main){|Main:|}; \node[visit,right of=main,xshift=3mm] (vName) {name}; \node[svisit,right of=vName,xshift=6mm,yshift=4mm] (vSupply) {supply}; \node[svisit,right of=vSupply,xshift=5mm] (vOutcome) {outcome}; \node[vbox, fit=(vSupply) (vOutcome)](nmbox) {}; \node[visit, right of=vOutcome,xshift=6mm,yshift=-4mm] (vType) {type}; \node[attr, below of=vName] (nmTree) {|nmTree :: T_Name st Ty|}; \node[annot,above of=nmbox,yshift=-2mm]{|nmTree.NameUse|}; \node[attr, below of=vType]{|ty :: Ty|}; \draw[arr] (vSupply) to (vName); \draw[arr] (vType) to (vOutcome); \draw[arr] (vType) to [out=-140,in=-30] (vName); \end{tikzpicture} \end{center} \end{frame}