| open Types |
| open Value |
| |
| type extern = ref_ |
| type t = extern |
| |
| type ref_ += ExternRef of extern |
| |
| let () = |
| let eq_ref' = !Value.eq_ref' in |
| Value.eq_ref' := fun r1 r2 -> |
| match r1, r2 with |
| | ExternRef r1', ExternRef r2' -> Value.eq_ref r1' r2' |
| | _, _ -> eq_ref' r1 r2 |
| |
| let () = |
| let type_of_ref' = !Value.type_of_ref' in |
| Value.type_of_ref' := function |
| | ExternRef _ -> ExternHT |
| | r -> type_of_ref' r |
| |
| let () = |
| let string_of_ref' = !Value.string_of_ref' in |
| Value.string_of_ref' := function |
| | ExternRef r -> "(extern " ^ string_of_ref r ^ ")" |
| | r -> string_of_ref' r |