pub fn fold_boolop<U, F: Fold<U> + ?Sized>(
    folder: &mut F,
    node: BoolOp
) -> Result<BoolOp, F::Error>