The code for push/pull was doing just a single step, for some reason
6WFOU7UXCYM5UWA5WVZ72XFRJWJA5GWCIAC5PI5NOEFHNFD3VKNAC
let mut now_ = HashSet::new();
let mut result = Vec::new();
for n in now {
let mut now_ = HashSet::with_capacity(original.len());
let mut result = Vec::with_capacity(original.len());
for &h in now {
now_.insert(h);
result.push(h);
}
let mut stack = now.to_vec();
stack.reverse();
while let Some(n) = stack.pop() {