RetrieveOblval check_evars : Environ.env -> Evd.evar_map -> unittype obligation_info =
  (Names.Id.t
   * Constr.types
   * Evar_kinds.t Loc.located
   * (bool * Evar_kinds.obligation_definition_status)
   * Int.Set.t
   * unit Proofview.tactic option)
    arrayident, type, location of the original evar, (opaque or transparent, expand or define), dependencies as indexes into the array, tactic to solve it
val retrieve_obligations : 
  Environ.env ->
  Names.Id.t ->
  Evd.evar_map ->
  int ->
  ?deps:Evar.Set.t ->
  ?status:Evar_kinds.obligation_definition_status ->
  EConstr.t ->
  EConstr.types ->
  obligation_info
  * ((Evar.t * Names.Id.t) list
     * ( ( Names.Id.t -> EConstr.t ) ->
     EConstr.t ->
     Constr.t ))
  * Constr.t
  * Constr.tretrieve_obligations env id sigma fs ?status body type returns obls, (evnames, evmap), nbody, ntype a list of obligations built from evars in body, type.
fs is the number of function prototypes to try to clear from evars contexts. evnames, evmap is the list of names / substitution functions used to program with holes. This is not used in Coq, but in the equations plugin; evnames is actually redundant with the information contained in obls