has_side_effect
return has_side_effect(tn->u.ops.left);
return has_side_effect(tn->u.ops.right);
return has_side_effect(tn->u.ops.right);
return has_side_effect(tn->u.ops.left) ||
has_side_effect(tn->u.ops.right);
!has_side_effect(tn) &&