6.19.6. Whitespace — Glasgow Haskell Compiler 9.10.0.20240328 User's Guide

# 6.19.6. Whitespace

As in the Haskell Language Report, Haskell comments are valid whitespace. In addition, lines (which must end with a line feed character) that begin as follows are valid whitespace in source code, except immediately after a `where`, `let`, `do` or `of` keyword:

- `#!`. This accommodates ‘shebang’ interpreter directives in scripts on Unix-like operating systems.
- `<space>#!`, where `<space>` is an initial space character before the ‘shebang’.
- `#pragma`. This accommodates the use of a directive that passes additional information to a compiler.
- `#line <line> "<file>"`, where `<line>` is a positive integer and `<file>` can comprise zero or more characters. This accommodates a compiler directive that resets the numbering of lines of source code, and the identification of the source code file name, in compiler messages.
- `#<line> "<file>"`, where `<line>` is a positive integer and `<file>` can comprise zero or more characters.