let get_distance data klass1 klass2 =
(* We let these pop exceptions because that means bad programming on the compiler
* writers part, not on the GAMMA programmer's part (when klass1, klass2 aren't found)
*)
let klass1_map = StringMap.find klass1 data.distance in
let klass2_map = StringMap.find klass2 data.distance in
match map_lookup klass2 klass1_map, map_lookup klass1 klass2_map with
| None, None -> None
| None, Some(n) -> Some(-n)
| res, _ -> res