anchor.diff:    | Typ_const ftv ->  extractTyConstApp c ftv []
     | Typ_fun (bs, codomain) -> 
           let (bts, newC) = extractBindersTypes c bs in
  -        (let codomainML = (extractComp  newC codomain) in 
  +        (let codomainML, erase = (extractComp  newC codomain) in 
           if  (codomainML = erasedContent) 
  -        then erasedContent (*perhaps this is not needed*)
  -        else  (curry bts codomainML))
  +        then erasedContent (*perhaps this is not needed, or should be done in a later phase*)
  +        else  (curry bts erase codomainML))
   
     | Typ_refine (bv (*var and unrefined type*) , _ (*refinement condition*)) -> extractTyp c bv.sort
   
  
positive.code: (*copied from ocaml-strtrans.fs*)
  let prependTick (x,n) = if Util.starts_with x "'" then (x,n) else ("'"^x,n)
  
  let translate_eff g l = 
      if lid_equals l Const.effect_PURE_lid 
      then MayErase 
      else Keep
  
  (*generates inp_1 -> inp_2 -> ... inp_n -> out *)
  let rec curry (inp: (list<mlty>)) (out: mlty) =
    match inp with
    | [] -> out
    | h::tl -> MLTY_Fun (h, Keep, curry tl out) //TODO: Fix the e_tag
  
  (*
    Below, "the thesis" refers to:
  
negative.code: 
  and extractTyp  (c:context) (ft:typ) : mlty = extractType' c (Util.compress_typ ft).n
  and extractKind (c:context) (ft:knd) : mlty = erasedContent
  and extractComp  (c:context) (ft:comp) : mlty * e_tag = extractComp' c (ft.n) 
  and extractComp'  (c:context) (ft:comp') : mlty * e_tag =
  match  ft with
    | Total ty -> (extractTyp c ty, MayErase)
    | Comp cm -> (extractTyp c (cm.result_typ), translate_eff c cm.effect_name )
  
  
  let binderPPnames (bn:binder): ident =
  