\begin{syntax}
  rec-defn ::=  fun-defn ("with" fun-defn)* ;
  \
  fun-defn ::= "ghost"? lident label* fun-body ;
  \
  fun-body ::= binder+ (":" type)? spec* "=" spec* expr ;
  \
  binder ::= "ghost"? lident label*
                  |  param
  \
  param ::= "(" ("ghost"? lident label*)+ ":" type ")"   
\end{syntax}
