anchor.diff:  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_datacon of s_lident * s_typ * s_tycon * 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>
  
positive.code:     | S_RecordConstructor(l) -> RecordConstructor(List.map deserialize_ident l)
      | S_ExceptionConstructor -> ExceptionConstructor
      | S_Effect -> Effect
  
  type s_monad_abbrev = 
      { mabbrev : s_lident
  
negative.code:         Sig_typ_abbrev
              (deserialize_lident lid, deserialize_binders bs, deserialize_knd k, deserialize_typ t, 
               List.map deserialize_qualifier qs, dummyRange)
      | S_Sig_datacon(lid1, t, tyc, qs) -> 
          Sig_datacon
              (deserialize_lident lid1, deserialize_typ t, deserialize_tycon tyc, List.map deserialize_qualifier qs, 
               dummyRange)
      | S_Sig_val_decl(lid, t, qs) -> 
          Sig_val_decl(deserialize_lident lid, deserialize_typ t, List.map deserialize_qualifier qs, dummyRange)
  