eval1 env (Fold e0 e1 x y e2) = foldr phi v1 vs
  where
    v0 = eval1 env e0
    v1 = eval1 env e1
    vs = [(v0 `shiftR` s) .&. 0xFF | s <- [56,48..0]]
    phi vx vy = eval1 env' e2
      where
        env' = Map.insert x vx $ Map.insert y vy env
eval1 env (Fold e0 e1 x y e2) = foldr phi v1 vs
  where
    v0 = eval1 env e0
    v1 = eval1 env e1
    vs = [(v0 `shiftR` s) .&. 0xFF | s <- [56,48..0]]
    phi vx vy = eval1 env' e2
      where
        env' = Map.insert x vx $ Map.insert y vy env
eval1 env (Fold e0 e1 x y e2) = foldr phi v1 vs
  where
    v0 = eval1 env e0
    v1 = eval1 env e1
    vs = [(v0 `shiftR` s) .&. 0xFF | s <- [56,48..0]]
    phi vx vy = eval1 env' e2
      where
        env' = Map.insert x vx $ Map.insert y vy env