anchor.diff:           env
            t
            (let must_tot = false in must_tot) in
  -       check_strictly_positive_argument ty_lid t_ty args
  +       check_strictly_positive_argument env ty_lid t_ty args unfolded
        end
        else
          let fv, us = fv_us_opt |> must in
  
positive.code: 
      else match Env.try_lookup_lid env ilid with
           | Some ((_, t), _) ->
             check_strictly_positive_argument ty_lid t args
           | None ->
             debug_positivity env (fun () -> "Checking nested positivity, no attrs or type, return false");
             false
  
negative.code:       List.for_all (fun (arg, _) -> not (ty_occurs_in ty_lid arg)) args
      | b::bs, (arg, _)::args ->
        ((not (ty_occurs_in ty_lid arg)) ||
         (ty_strictly_positive_in_type env ty_lid arg unfolded &&
          U.has_attribute
            b.binder_attrs
            FStar.Parser.Const.binder_strictly_positive_attr))
        && aux bs args
    in
    aux bs args
  
  //check if ty_lid occurs strictly positively in some binder type btype
  and ty_strictly_positive_in_type env (ty_lid:lident) (btype:term) (unfolded:unfolded_memo_t) : bool =
    debug_positivity env (fun () -> "Checking strict positivity in type: " ^ (Print.term_to_string btype));
    //normalize the type to unfold any type abbreviations
    let btype = N.normalize
  