Lazy Prefix

Lazy Prefix is an esoteric programming language designed to look like any other stack-based language, except that it heavily relies on lazy evaluation - a feature that reflects in its syntax by the use of prefix notation, as opposite to the usual suffix notation in most stack-based languages. Lazy Prefix was inspired by Tg.

Lazy Prefix is a work in progress. You are welcome to contribute with your ideas and suggestions.

Instructions
Note: the "before" and "after" columns show how the instruction would affect the stack, if it was a regular stack-based language; they are merely indicative and do not reflect Lazy Prefix's lazy evaluation.

Lazy evaluation
Rather than an explanation of how programs in Lazy Prefix work, here is an example. Analyze the following program. 2 3 + 2 dup output 3 * b if If it were a random stack-based language, it will evaluate, then  , then the if-then-else statement will select either 5 or 6; as a side-effect, the element 2 will always be displayed, notwithstanding the value of b. If it were a Lazy Prefix program, on the other hand, evaluating  will cause the following: To reflect the way things work in Lazy Prefix, that program will actually be written.
 * b is evaluated
 * if b is true, then
 * is evaluated
 * causes 2 and 3 to be evaluated
 * then  is discarded
 * discarding  causes the next two elements to be discarded (since it is a binary operator)
 * output is discarded, which causes one more element to be discarded (since it is a unary operator)
 * dup is discarded, which causes one more element to be discarded
 * 2 is discarded
 * 3 is discarded
 * the top element is now 5
 * if b is false, then
 * is discarded
 * discarding  causes the next two elements to be discarded
 * 2 is discarded
 * 3 is discarded
 * is evaluated
 * is evaluated
 * is evaluated
 * 2 is evaluated
 * as a side effect of output, 2 is displayed
 * 3 is evaluated
 * the top element is now 6

Flow control
In order for Lazy Prefix to be an actual programming language, it needs some kind of looping construct. Here are two propositions. It sort of made sense last night just before I fell asleep. Not really sure if it still does, and what that would mean.
 * Some kind of while loop.
 * Functions.
 * An instruction similar to Fueue's  operator.