The syntax for local is:

(local {def
        ...
        def}
  exp)
where each def is a define or define-struct. exp is any expression, and is called the body of the local.

(Note to labbies: This much suffices; the following is optional.)

Note that DrScheme doesn't care about what type of parentheses you ever use (as long as they match). Dr. Wong takes advantage of this by using square-brackets to set off the list of local definitions. (Dr. Barland prefers using square-brackets for pairs of things, like in cond, and using squirrely-brackets "{" for lists of things such as here in local.) Either is fine, but do use alternate parentheses to help make your code easier to read (your indentation, names, and choice of characters all help reflect your code's structure!)

Nitpick: The above definition of local's syntax has a "..." in it (and misleadingly suggests a local requires at least two defs). If you really had to specifiy the precise syntax?

(local list-of-def
  exp)
where a list-of-def is ...!

You can look in help-desk under "manuals", find the manual for Intermediate-Student, and see the official syntax -- not just for local, but for the entire language!