Careful, when you say "evaluates a block", you are almost coming right out and stating that a block has a return value :). Which was my point: what could it mean to evaluate a block containing only a for statement? If a for statement doesn't have a return value, it shouldn't even be valid syntax.