[e-acsl] undefine comparison function for Id_term
The notion of equality of Id_term is physical equality. The comparison as defined is not correct. If two terms are not physically equal but structually equal the comparison returns 0. There is no meaningful way to define a comparison w.r.t physical equality semantics, so we'll raise an exception. Not having any comparison implies that Map and Set cannot be used on Id_term.t. Hashtbl is the only collection that still works. In the subsequent commits the uses of Id_term.Map end Set will be changed to use Id_term.Hashtbl instead. Note that Datatype.undefined cannot be used here. In its current state Datatypes.Make_with_collections requires comparison to be defined. In the future we might tease out of Make_with_collections a functor Make_with_hashtbl.
Please register or sign in to comment