anchor.diff:  
   exception InvalidSearch of string
   
  -let run_search st search_str =
  +let run_search (st: full_repl_state) search_str =
     let dsenv, tcenv = st.repl_env in
     let empty_fv_set = SS.new_fv_set () in
   
  
positive.code:   | CKModuleOrNamespace (modules, namespaces) ->
      run_module_autocomplete st search_term modules namespaces
  
  let run_compute st term rules =
    let run_and_rewind st task =
      let env' = push st.repl_env "#compute" in
      let results = task st in
      pop env' "#compute";
  
negative.code: let sigelt_to_string se =
    with_printed_effect_args (fun () -> Syntax.Print.sigelt_to_string se)
  
  let run_exit (st: repl_state) =
    ((QueryOK, JsonNull), Inr 0)
  
  let run_describe_protocol (st: repl_state) =
    ((QueryOK, JsonAssoc alist_of_protocol_info), Inl st)
  
  let run_describe_repl (st: repl_state) =
    ((QueryOK, json_of_repl_state st), Inl st)
  
  let run_protocol_violation (st: repl_state) message =
    ((QueryViolatesProtocol, JsonStr message), Inl st)
  
  let run_generic_error (st: repl_state) message =
    ((QueryNOK, JsonStr message), Inl st)
  
  let run_pop (st: full_repl_state) =
    if repl_stack_empty () then
      ((QueryNOK, JsonStr "Too many pops"), Inl st)
    else
  