NCicLibrary.dump_obj status (record_index_obj data)
;;
+let basic_extract_obj obj status =
+ try
+ ignore (Helm_registry.get "extract_haskell");
+ let status,(msg,infos) = NCicExtraction.haskell_of_obj status obj in
+ prerr_endline msg;
+ status,infos
+ with
+ Helm_registry.Key_not_found _ -> status,NCicExtraction.empty_info
+ | exn -> prerr_endline ("EXTRACTION FAILURE: " ^ Printexc.to_string exn); assert false
+;;
+
+let inject_extract_obj =
+ let basic_extract_obj info
+ ~refresh_uri_in_universe ~refresh_uri_in_term ~refresh_uri_in_reference
+ ~alias_only status
+ =
+ let info= NCicExtraction.refresh_uri_in_info ~refresh_uri_in_reference info in
+ status#set_extraction_db
+ (NCicExtraction.register_infos status#extraction_db info)
+ in
+ GrafiteTypes.Serializer.register#run "extraction" basic_extract_obj
+;;
+
+let eval_extract_obj status obj =
+ let status,infos = basic_extract_obj obj status in
+ NCicLibrary.dump_obj status (inject_extract_obj infos)
+;;
+
(*
module EmptyC =
struct
let obj = uri,height,[],[],obj_kind in
let old_status = status in
let status = NCicLibrary.add_obj status obj in
+ let status = eval_extract_obj status obj in
(try
let index_obj = index &&
match obj_kind with
basic_eval_and_record_ncoercion_from_t_cpos_arity
status (name,true,t,cpos,arity) in
let aliases = GrafiteDisambiguate.aliases_for_objs status nuris in
+ let status =
+ List.fold_left
+ (fun status uri ->
+ let obj = NCicEnvironment.get_checked_obj status uri in
+ eval_extract_obj status obj
+ ) status nuris
+ in
eval_alias status (mode,aliases)
with MultiPassDisambiguator.DisambiguationError _->
HLog.warn ("error in generating coercion: "^name);
| _ -> prerr_endline ("engine: indty expected... (fix this error message)"); assert false in
let (_,ind_name,_,_ as it) = List.nth tys indtyno in
let status,obj =
- NDestructTac.mk_discriminator ~use_jmeq:true (ind_name ^ "_jmdiscr")
+ NDestructTac.mk_discriminator ~use_jmeq:true ~force:true (ind_name ^ "_jmdiscr")
it leftno status status#baseuri in
let _,_,menv,_,_ = obj in
(match menv with