\begin{syntax}
  type ::= lqualid type-arg+ ; polymorphic type symbol
       | type "->" type      ; mapping type (right-associative)
       | type-arg
  \
  type-arg ::= lqualid       ; monomorphic type symbol (sort)
       | qident              ; type variable
       | "()"		     ; unit type
       | "(" type ("," type)+ ")" ; tuple type
       | "{" type "}"        ; snapshot type
       | qualifier? "(" type ")"  ; type in a scope %
\end{syntax}
