anchor.diff:          | None ->
             if not (Options.interactive ()) then
               FStar.Errors.warn (range_of_lid l)
  -              (BU.format1 "Admitting %s without a definition" (Print.lid_to_string l));
  +              (BU.format1 "Admitting %s without a definition" l.str);
             let quals = Assumption :: se.sigquals in
             BU.smap_add (sigmap env) l.str ({ se with sigquals = quals },
                                             false)
  
positive.code:     let lid = qual (current_module env) id in
      find_in_module env lid k_global_def k_not_found
  
  let module_is_defined env lid =
      (match env.curmodule with
       | None -> false
       | Some m -> lid_equals lid (current_module env)) ||
      List.existsb (fun x -> lid_equals lid (fst x)) env.modules
  
  let resolve_module_name env lid (honor_ns: bool) : option<lident> =
  
negative.code:            aux rev_ns_prefix ns_last_id |>
               BU.map_option (fun (stripped_ids, rev_kept_ids) ->
                              (stripped_ids, id :: rev_kept_ids)) in
    let do_shorten env ids =
      // Do the actual shortening.  FIXME This isn't optimal (no includes).
      match List.rev ids with
      | [] -> ([], [])
      | ns_last_id :: ns_rev_prefix ->
        match aux ns_rev_prefix ns_last_id with
        | None -> ([], ids)
        | Some (stripped_ids, rev_kept_ids) -> (stripped_ids, List.rev rev_kept_ids) in
  
    if is_full_path then
      // Try to strip the entire prefix.  This is the cheap common case.
      match resolve_module_name env (FStar.Ident.lid_of_ids ids) true with
      | Some m when module_is_open env m -> (ids, [])
      | _ -> do_shorten env ids
    else
      do_shorten env ids
  
  (* Generic name resolution. *)
  
  