method interp_db: db
end
-class virtual status =
+class virtual status uid =
object(self)
- inherit NCicCoercion.status
+ inherit NCicCoercion.status uid
val mutable interp_db = None (* mutable only to initialize it :-( *)
method interp_db = match interp_db with None -> assert false | Some x -> x
method set_interp_db v = {< interp_db = Some v >}
let find_level2_patterns32 status pid =
IntMap.find pid status#interp_db.level2_patterns32
-let instantiate32 env symbol args =
+let instantiate32 env symbol dsc args =
let rec instantiate_arg = function
| Ast.IdentArg (n, name) ->
let t =
in
add_lambda t (n - count_lambda t)
in
- let head = Ast.Symbol (symbol, None) in
+ let head = Ast.Symbol (symbol, Some (None, dsc)) in
if args = [] then head
else Ast.Appl (head :: List.map instantiate_arg args)
term
) env
in
- let _, symbol, args, _ =
+ let dsc, symbol, args, _ =
try
find_level2_patterns32 status pid
with Not_found -> assert false
in
- instantiate32 env symbol args
+ instantiate32 env symbol dsc args
;;
let nmap_context0 status ~metasenv ~subst context =