let rec v_neg v = match v with |N i -> return_N (-i) |R f -> return_R (-.f) |Vec (size, vec) -> make_vector size (fun i -> v_neg (vec i)) |Zero -> Zero |W -> fail