':see: Expression.visit()'

def visit(self, function, combinator):

    parts = list(map(function, self.conds))
    if self.consequent:
        parts.append(function(self.consequent))
    return combinator(parts)
