This needs to support not calling it with an arg. If no arg is passed to the block, it should just do a normal `instance_eval(&block)`.