anchor.diff:  
   | Sig_bundle _ -> 
       let ind = parseFirstInductiveType s in
  +    //let k = lookup_typ_lid c ind.tyName in
       let identsPP = List.map binderPPnames ind.tyBinders in
       let newContext = (extendContext c ind.tyBinders) in
       let nIndices = numIndices ind.k.n ind.tyName.ident.idText in
  
positive.code: type inductiveConstructor = {
    cname: lident;
    ctype : typ;
    cargs : binders (*will this list always be empty? it has always been empty: tested nat, list, vec*)
  }
  type inductiveTypeFam = {
    tyName: lident;
  
negative.code: let convRange (r:Range.range) : int = 0 (*FIX!!*)
  let convIdent (id:ident) : mlident = (id.idText ,(convRange id.idRange))
      
  type argTransform = arg -> option<arg> (*none indicates that this argument should be deleted*)
  type nthArgTransform = int -> argTransform (* f n is the argtransform for the nth argument (of a type constant)*)
  let idArgTransform :argTransform = fun a -> Some a
  type nthArgTransforms = lident (*name of a constant*) -> nthArgTransform
   
  
  type context = {
    e : env;
    at:nthArgTransforms
  }
  
  (* vars in tyVars will have type Type, irrespective of that types they had in F*. This is to match the limitations of  OCaml*)
  let extendContext (c:context) (tyVars : list<binder>) : context = 
  {
    e= List.fold push_local_binding c.e (List.map binding_of_binder tyVars);
    at= c.at
  }
  
  let contains (c:context) (b:btvar) : bool = 
    try (let _ = (lookup_btvar c.e b) in true) (*does not work for vars mentioned in bodies of inductives. those mentions have wierd chars appended in realnames. their range matches, though*)
    with
     | _ -> false
  
  