| Record of 'term capture_variable list * string * 'term * (string * 'term * bool * int) list
(** left parameters, name, type, fields *)
+let name_of_obj = function
+ | Theorem (_,n,_,_,_) | Record (_,n,_,_)
+ | Inductive (_,(n,_,_,_)::_) -> n
+ | _ -> (* empty inductive block *) assert false
+;;
+
let map_variable f (t,u) = f t, HExtlib.map_option f u ;;
let map_pattern f = function