let rec v_larger_than_zero v = match v with
        |N i -> if i > 0 then return_N 1 else return_N 0
        |R f -> if f > 0. then return_N 1 else return_N 0
        |Vec (size, vec) -> make_vector size (fun i -> v_larger_than_zero (vec i))
        |Zero -> return_N 0
        |W -> W