moved special case into likely_environment::evaluate