'status * cic_term * cic_term (* status, term, type *)
val apply_subst:
#pstatus as 'status -> NCic.context -> cic_term -> 'status * cic_term
+val apply_subst_context :
+ #pstatus -> fix_projections:bool -> NCic.context -> NCic.context
val fix_sorts: #pstatus as 'status -> cic_term -> 'status * cic_term
val saturate :
#pstatus as 'status -> ?delta:int -> cic_term -> 'status * cic_term * cic_term list
#pstatus as 'status -> ?attrs:NCic.meta_attrs -> NCic.context ->
[ `Decl of cic_term | `Def of cic_term ] -> NCicUntrusted.meta_kind ->
'status * cic_term
-val instantiate: #pstatus as 'status -> int -> cic_term -> 'status
+
+(* default value for refine: true; you can use false if the term has already been refined with
+ the expected type for the meta (e.g. after a reduction tactic) *)
+val instantiate: #pstatus as 'status -> ?refine:bool -> int -> cic_term -> 'status
val instantiate_with_ast: #pstatus as 'status -> int -> tactic_term -> 'status
val select_term:
val mk_out_scope:
int -> (#pstatus as 'status) -> cic_term -> 'status * cic_term
-val pp_status: #pstatus -> unit
-
class type ['stack] g_status =
object
inherit g_pstatus
class type tac_status = [Continuationals.Stack.t] status
+val pp_tac_status: #tac_status -> unit
+
type 'status tactic = #tac_status as 'status -> 'status
(* indexing facilities over cic_term based on inverse De Bruijn indexes *)