open Position

module Order =
  struct
    type t = int
    let compare = compare
  end

module My_map = Map.Make( Order)


type t = (position * int) My_map.t ref

let no_info = -10000

let make size = ref My_map.empty

let get tbl id = 
  try
    My_map.find id !tbl 
  with
  | Not_found -> ({x=0; y=0}, no_info)


let set tbl id pos date = 
  tbl := My_map.add id (pos,date) !tbl


let update tbl id pos date = 
  try
    let _, date_tbl = My_map.find id !tbl in
    if date > date_tbl then tbl := My_map.add id (pos,date) !tbl
  with
  | Not_found -> tbl := My_map.add id (pos,date) !tbl