anchor.diff:          if List.length tvars = 0 then
             Some (DExternal (None, name, translate_type env t0))
           else
  +          // JP: TODO assume polymorphic function and have KreMLin generate
  +          // monomorphized assumes 
             None
         else begin
           try
             let body = translate_expr env body in
             Some (DFunction (None, flags, List.length tvars, t, name, binders, body))
           with e ->
  +          // JP: TODO: figure out what are the remaining things we don't extract
             let msg = BU.print_exn e in
             BU.print2_warning "Writing a stub for %s (%s)\n" (snd name) msg;
             let msg = "This function was not extracted:\n" ^ msg in
             Some (DFunction (None, flags, List.length tvars, t, name, binders, EAbortS msg))
         end
   
  -  | MLM_Let (flavor, flags, [ {
  +  | {
         mllb_name = name;
         mllb_tysc = Some ([], t);
         mllb_def = expr
  -    } ]) ->
  +    } ->
  +      // Case 2: this is a global
         let flags = translate_flags flags in
         let t = translate_type env t in
         let name = env.module_name, name in
  
positive.code:     | _ -> None // is this all of them?
    ) flags
  
  and translate_decl env d: option<decl> =
    match d with
    | MLM_Let (flavor, flags, [ {
        mllb_name = name;
        mllb_tysc = Some (tvars, t0);
        mllb_def = { expr = MLE_Fun (args, body) }
      } ])
    | MLM_Let (flavor, flags, [ {
        mllb_name = name;
        mllb_tysc = Some (tvars, t0);
        mllb_def = { expr = MLE_Coerce ({ expr = MLE_Fun (args, body) }, _, _) }
      } ]) ->
        let assumed = BU.for_some (function Syntax.Assumed -> true | _ -> false) flags in
        let env = if flavor = Rec then extend env name false else env in
        let env = List.fold_left (fun env name -> extend_t env name) env tvars in
  
negative.code:   let module_name = fst module_name @ [ snd module_name ] in
    let program = match modul with
      | Some (_signature, decls) ->
          List.collect (translate_decl (empty module_name)) decls
      | _ ->
          failwith "Unexpected standalone interface or nested modules"
    in
  