anchor.diff:          let fold1 sigelt (types, ctors) =
               match sigelt with
               | Sig_tycon (x, tps, k, ts, cs, _, rg) -> begin
  +                let tps = List.map (function
  +                    | Tparam_typ (x, Kind_type) -> x.realname.idText
  +                    | _ -> unsupported rg) tps
  +                in
  +                
                   match is_kind_for_mldtype rg k with
                   | Some n ->
  -                    ((x.ident.idText, tps, cs, n, rg) :: types, ctors)
  +                    ((x.ident.idText, tps, cs, n + List.length tps, rg) :: types, ctors)
                   | _ ->
                       unsupported rg
               end
  
positive.code:                     aux [] ar ty
          in
  
          if not (List.isEmpty tps) then unsupported rg;
  
          let mldcons_of_cons cname =
              let (c, _) = Map.find cname.ident.idText cs in
              let ctynames, c = strip ar c in
  
negative.code:                     unexpected rg;
                  if not (List.forall2 check ctynames tyargs) then
                      unsupported rg;
                  (cname.ident.idText, args, List.append tps ctynames)
              | _ -> unexpected rg    
  
          in (x, ar, List.map mldcons_of_cons tcs)
  