anchor.diff:  
     | (_, name, _mangled_name, _, _, _) ->
         // JP: TODO: figure out why and how this happens
  -      Errors. log_issue Range.dummyRange (Errors.Warning_DefinitionNotTranslated, (BU.format1 "Not translating type definition for %s\n" name));
  +      Errors. log_issue Range.dummyRange (Errors.Warning_DefinitionNotTranslated, (BU.format1 "Error extracting type definition %s to KreMLin\n" name));
         None
   
   and translate_type env t: typ =
  
positive.code:       let env = List.fold_left (fun env name -> extend_t env name) env args in
        if assumed then
          let name = string_of_mlpath name in
          BU.print1_warning "Not translating type definition (assumed) for %s\n" name;
          // JP: TODO: shall we be smarter here?
          None
        else
  
negative.code:           let expr = translate_expr env expr in
            Some (DGlobal (meta, name, List.length tvars, t, expr))
          with e ->
            Errors. log_issue Range.dummyRange (Errors.Warning_DefinitionNotTranslated, (BU.format2 "Error extracting %s to KreMLin (%s)\n" (Syntax.string_of_mlpath name) (BU.print_exn e)));
            Some (DGlobal (meta, name, List.length tvars, t, EAny))
          end
  
    | { mllb_name = name; mllb_tysc = ts } ->
        // TODO JP: figure out what exactly we're hitting here...?
        Errors. log_issue Range.dummyRange (Errors.Warning_DefinitionNotTranslated, (BU.format1 "Not extracting %s to KreMLin\n" name));
        begin match ts with
        | Some (idents, t) ->
            BU.print2 "Type scheme is: forall %s. %s\n"
  