1 module H = MoreLabels.Hashtbl
14 let symbols = H.create 16
16 let unique_of_string name =
17 {name; symbol = next ()}
20 match H.find_opt symbols name with
24 let t = unique_of_string name in
25 H.replace symbols ~key:t.name ~data:t.symbol;
28 let to_string {name; _} =
31 let is_equal {symbol=s1; _} {symbol=s2; _} =
34 let show {name; symbol} =
35 Printf.sprintf "Symbol[%S, %d]" name symbol