Syntax: Anything seperated by whitespace. Data type: A quotation. A program, in [...]. They can be nested. However, they may not actually appear in the program text. Semantics: The program has an [] in front of it (which, of course, could not actually appear in the program) and then these rewrite rules are applied to it, left-to-right. There is, however, one special case: `X dei` becomes `X [X]`, but this happens before X is executed. So: `dup dei` is `dup [dup]`. [X] wrap => [[X]] X drop => X dup => X X X Y swap => Y X [X] i => X [X] [Y] compose => [X Y]