Development aid: (first ()) and (rest ()) raise instead of crashing.
Costs 1.4x-1.7x: the library walks its own lists through these globals.
Guard bodies use C primitives only – if/do are operatives that call
first/rest themselves, which makes the guard recurse into itself.