likely_eval now uses likely_void to distinguish between errors and void statements