let add_spare out_marks max_out =
    let rec add_out lst n =
      if n < 0 then lst
      else if not (List.mem_assoc n lst) then
        (n, M.mk_gen_spare) :: (add_out lst (n-1))
      else add_out lst (n-1)
    in add_out out_marks max_out