let compare_item_state i1 i2 =
  match i1.item_state, i2.item_state with
   DoneDone ->
     Pervasives.compare i2.item_enddate i1.item_enddate
  | x, y when x = y ->
     Pervasives.compare i1.item_date i2.item_date
  | Done, _ -> 1
  | _, Done -> -1
  | Suspended, _ -> 1
  | _, Suspended -> -1
  | Priority_low, _ -> 1
  | _, Priority_low -> -1
  | Priority_normal, _ -> 1
  | _, Priority_normal -> -1
  | Priority_high, _ -> 1