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
        | NoneNone -> None
        | NoneSome(n) -> Some(-n)
        | res, _ ->  res