blob: 92fa14f6d4a6b4b5c592cd079abbb5736d834387 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
(* $Id$ *)
open Util
(* Dynamics, programmed with DANGER !!! *)
type t = string * Obj.t
let dyntab = ref ([] : string list)
let create s =
if List.mem s !dyntab then anomaly "Dyn.create: already declared dynamic";
dyntab := s :: !dyntab;
((fun v -> (s,Obj.repr v)),
(fun (s',rv) ->
if s = s' then Obj.magic rv else failwith "dyn_out"))
let tag (s,_) = s
|