let compare_item_state i1 i2 =
match i1.item_state, i2.item_state with
Done, Done ->
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