1 module H = MoreLabels.Hashtbl
10 let symbols = H.create 16
14 let symbol = !counter in
17 let new_of_string name =
19 H.replace symbols ~key:t.name ~data:t.symbol;
23 match H.find_opt symbols name with
24 | Some s -> {name; symbol=s}
25 | None -> new_of_string name
27 let to_string {name; _} =
30 let is_equal {symbol=s1; _} {symbol=s2; _} =
33 let show {name; symbol} =
34 Printf.sprintf "Symbol[%S, %d]" name symbol