-void stringpool_init (Stringpool *ss, const char *strs[]);
-Id stringpool_str2id (Stringpool *ss, const char *str, int create);
-void stringpool_shrink (Stringpool *ss);
+void stringpool_init(Stringpool *ss, const char *strs[]);
+void stringpool_init_empty(Stringpool *ss);
+void stringpool_clone(Stringpool *ss, Stringpool *from);
+void stringpool_free(Stringpool *ss);
+void stringpool_freehash(Stringpool *ss);
+void stringpool_resize_hash(Stringpool *ss, int numnew);
+
+Id stringpool_str2id(Stringpool *ss, const char *str, int create);
+Id stringpool_strn2id(Stringpool *ss, const char *str, unsigned int len, int create);
+
+void stringpool_shrink(Stringpool *ss);
+
+
+static inline const char *
+stringpool_id2str(Stringpool *ss, Id id)
+{
+ return ss->stringspace + ss->strings[id];
+}
+
+#ifdef __cplusplus
+}
+#endif