\begin{frame}[fragile]
  \frametitle{Deep dive into dependency calculation}

  \begin{columns}
    \begin{column}{0.5\textwidth}
      \begin{Verbatim}[fontsize=\small]
component HelloWorld {
    model {
        name: String = "",
    }

    view {
        <input bind:value="name" />
        "Hello, " {name} "!"
    }
}
      \end{Verbatim}
    \end{column}
    \begin{column}{0.3\textwidth}
      Points of interest:

      \begin{itemize}
        \item \texttt{bind:value} statement
        \item Code segment \texttt{\{name\}}
      \end{itemize}
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{Generated dependency chart}

  \begin{center}
    \includegraphics[width=0.6\textwidth]{{./dot/helloworld.dot}.pdf}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Generated dependency chart}

  \begin{columns}
    \begin{column}{0.4\textwidth}
      \includegraphics[width=\textwidth]{{./dot/helloworld.dot}.pdf}
    \end{column}
    \begin{column}{0.5\textwidth}
      \begin{itemize}[<+>]
        \item Symbolizes all interactions within the application.
        \item All possible dependent actors are uniquely identified.
        \item Simple DFS will tell us all updates that need to occur.
      \end{itemize}
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{Case study 2: TodoMVC}

  \begin{center}
    \includegraphics[width=0.7\textwidth]{./todomvc.png}
  \end{center}
\end{frame}

\begin{frame}[fragile]
  \frametitle{Case study 2: dependencies of TodoMVC}

  \begin{center}
    \includegraphics[width=0.85\textwidth]{{./dot/todomvc.dot}.pdf}

    \begin{BVerbatim}[fontsize=\tiny]
component TodoMVC {
  model {
    value: String = "",
    todos: List<String> = List::new(),
  }

  view {
    <input bind:value="value"
           on:submit={|o@todos, o@value| { set!(todos = todos.with(value));
                                           set!(value = ""); }} />
    <ul>
      [for (key, line) in {todos} : List<String>]
        <li>{line}</li>
      [/for]
    </ul>
  }
}
    \end{BVerbatim}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Challenges with TodoMVC}

  \begin{itemize}
    \item Everything within iterator must be parameterized.
      \begin{itemize}
        \item Generated code must be parameterized as well.
      \end{itemize}
    \item "Reconciliation", or re-updating the model on change.
      \begin{itemize}
        \item Consider hash-map-backed linked list implementations.
      \end{itemize}
  \end{itemize}
\end{frame}