2.4 Local definitions

In addition to the destructuring let (see section 2.2.3), there is a possibility to define local terms inside a bigger term. There are currently two equivalent syntaxes for that:
term ::= let ident = term in term
  | [ ident = term ] term