print error message with stderr()

because verbose() will not show when —quiet is used
templates may set obj_type to OV_IGNORE

effectively telling visit() to continue, ignoring the current object