downs palsat: > void doWhile(void delegate() pre, lazy bool cond, void delegate() post) { > while (true) { > pre; > if (!cond()) break; > post; > } > } More simply: void doWhile(void delegate() pre, lazy bool cond, void delegate() post) { for (pre; cond; pre) post; }