pub fn fold_join_constraint<F, T, T2>(
    folder: &mut F,
    node: JoinConstraint<T>
) -> JoinConstraint<T2>
where T: AstInfo, T2: AstInfo, F: Fold<T, T2> + ?Sized,