A Simplified Grammar for Haskell

Here's a very simplified grammar for the Haskell language as we have seen it so far. In this grammar, the "::=" means "may have the form of" and different alternatives are separated by vertical bars "|". Square brackets mean the surrounded forms are optional and curly braces mean that one or more forms may appear in sequence. (In a very few places, the square brackets mean literally a square bracket: these are in a smaller font and in black.) The names of forms are in a red serif font, literal text (including keywords) is in a blue typewriter font and comments are in italics.