- let k = J.new_mark () in
- match resolve_key_with_default st default k with
- | k, n when n = default -> if !G.trace >= level then pp_table st; n
- | _, n when n.s = true -> generated st h i
- | _ -> assert false
+ let k = P.new_mark () in
+ let k, n = resolve_key_with_default st default k in
+ if n.s then generated st h i else begin
+ if n <> default then KH.replace st k default;
+IFDEF TRACE THEN
+ if !G.ct >= level then pp_table st
+ELSE () END;
+ default
+ end