pub fn fold_program<V>(_visitor: &mut V, n: Program) -> Program where
    V: Fold + ?Sized