let rec v_floor v = match v with
        |N i -> return_R (float_of_int i)
        |R f -> return_R (floor f)
        |Vec (size, vec) -> make_vector size (fun i -> v_floor (vec i))
        |Zero -> return_R 0.
        |W -> W