anchor.diff:  let computed_computation_type_does_not_match_annotation env e c c' =
     let f1, r1 = name_and_result c in
     let f2, r2 = name_and_result c' in
  +  let s1, s2 = err_msg_type_strings env r1 r2 in
     format4
       "Computed type \"%s\" and effect \"%s\" is not compatible with the annotated type \"%s\" effect \"%s\""
  -      (N.term_to_string env r1) f1 (N.term_to_string env r2) f2
  +      s1 f1 s2 f2
   
   let unexpected_non_trivial_precondition_on_term env f =
    format1 "Term has an unexpected non-trivial pre-condition: %s" (N.term_to_string env f)
  
positive.code:                              else msg, r) in
      FStar.Errors.add_errors errs
  
  let possibly_verbose_message env t1 t2 =
    let s1 = N.term_to_string env t1 in
    let s2 = N.term_to_string env t2 in
    let extra =
      if s1 = s2 then
        let _ = Options.set_options Options.Set "--prn --print_universes" in
        let s1 = N.term_to_string env t1 in
        let s2 = N.term_to_string env t2 in
        BU.format2 "\nMore precisely: expected type:\n%s\ngot:\n%s\n" s1 s2
      else
        ""
    in
    s1, s2, extra
  
  (* Error messages for labels in VCs *)
  let exhaustiveness_check = "Patterns are incomplete"
  let subtyping_failed : env -> typ -> typ -> unit -> string =
       fun env t1 t2 x ->
         let s2, s1, extra = possibly_verbose_message env t2 t1 in
         BU.format3 "Subtyping check failed; expected type %s; got type %s%s" s2 s1 extra
  let ill_kinded_type = "Ill-kinded type"
  let totality_check  = "This term may not terminate"
  
  
negative.code: let inferred_type_causes_variable_to_escape env t x =
    format2 "Inferred type \"%s\" causes variable \"%s\" to escape its scope"
      (N.term_to_string env t) (Print.bv_to_string x)
  
  let expected_function_typ env t =
    format1 "Expected a function; got an expression of type \"%s\""
  