\begin{syntax}
  expr ::= ...                ; see Fig.~\ref{fig:bnf:expr1} and \ref{fig:bnf:expr2}
    | "if" expr "then" expr "else" expr     ; conditional
    | "let" pattern "=" expr "in" expr      ; let-binding
    | "let" prototype "=" expr "in" expr    ; mapping binding
    | "match" expr "with" expr-case+ "end"  ; pattern matching
    | "fun" binder+ "->" expr               ; mapping definition
  \
  prototype ::= lident-ext attribute* binder+
  \
  expr-case ::= "|" pattern "->" expr %
\end{syntax}
