let rec kind_equal ka kb = 
    match ka,kb with 
      | Kcint i, Kcint j -> i = j
      | KintKint | KrealKreal | KboolKbool -> true
      | Kptr t, Kptr t' -> Typ.equal t t'
      | Kset k, Kset k' -> kind_equal k k'
      | Kstruct cp, Kstruct cp' -> Compinfo.equal cp cp'
      | Karray a, Karray a' -> AinfoComparable.equal a a'
      | Kadt (s,ks), Kadt(s',ks') ->
          s=s' && List.for_all2 kind_equal ks ks'
      | _, _ -> false