(let-macro name params ..body)
  name: a sym
  params: an arr
  body: zero or more forms

Defines a local macro.

let-macro may appear anywhere that let would be valid. It introduces a new macro definition for the rest of the current lexical scope.

Just like let, let-macro will shadow any global macros, or any other local macros, which share the same name.

Variables and macros use distinct namespaces. This means that a let form will not shadow a let-macro form, and vice versa.