Good question. It's not a nil value that gives us problems here...consider this case. We create a shape. It's left is 0. In general, the shape's left is the minimum x value. Now, before we draw anything, we move the pen to (100, 200). We want left to be 100, not 0 (and similarly with right, except it's the maximum x there), so that's why I'm excluding the mins and maxes in the conditional.

I'm not totally happy with the implementation, but that's the logic behind it.