anchor.diff:      | S_RecordConstructor(l) -> RecordConstructor(List.map deserialize_ident l)
       | S_ExceptionConstructor -> ExceptionConstructor
       | S_Effect -> Effect
  +
  +type s_tycon = s_lident * s_binders * s_knd
  +let serialize_tycon ((lid, bs, k): tycon) :s_tycon = (serialize_lident lid, serialize_binders bs, serialize_knd k)
  +let deserialize_tycon ((lid, bs, k):s_tycon) :tycon = (deserialize_lident lid, deserialize_binders bs, deserialize_knd k)
   
   type s_monad_abbrev = 
       { mabbrev : s_lident
  
positive.code: and [<KnownType("KnownTypes")>] s_sigelt = 
      | S_Sig_tycon of s_lident * s_binders * s_knd * list<s_lident> * list<s_lident> * list<s_qualifier>
      | S_Sig_typ_abbrev of s_lident * s_binders * s_knd * s_typ * list<s_qualifier>
      | S_Sig_datacon of s_lident * s_typ * s_lident * list<s_qualifier>
      | S_Sig_val_decl of s_lident * s_typ * list<s_qualifier>
      | S_Sig_assume of s_lident * s_formula * list<s_qualifier>
      | S_Sig_let of s_letbindings * list<s_lident>
  
negative.code:         S_Sig_typ_abbrev
              (serialize_lident lid, serialize_binders bs, serialize_knd k, serialize_typ t, 
               List.map serialize_qualifier qs)
      | Sig_datacon(lid1, t, tyc, qs, _) -> 
          S_Sig_datacon(serialize_lident lid1, serialize_typ t, serialize_tycon tyc, List.map serialize_qualifier qs)
      | Sig_val_decl(lid, t, qs, _) -> 
          S_Sig_val_decl(serialize_lident lid, serialize_typ t, List.map serialize_qualifier qs)
      | Sig_assume(lid, fml, qs, _) -> 
  