+ /** Any \c %destructor declared for this semantic type. */
+ code_props destructor;
+ /** Any \c %printer declared for this semantic type. */
+ code_props printer;
+} semantic_type;
+
+/** Fetch (or create) the semantic type associated to KEY. */
+semantic_type *semantic_type_from_uniqstr (const uniqstr key);
+
+/** Fetch (or create) the semantic type associated to KEY. */
+semantic_type *semantic_type_get (const char *key);
+
+/** Set the \c destructor associated with \c type. */
+void semantic_type_destructor_set (semantic_type *type,
+ code_props const *destructor);
+
+/** Set the \c printer associated with \c type. */
+void semantic_type_printer_set (semantic_type *type,
+ code_props const *printer);
+
+/*----------------------------------.
+| Symbol and semantic type tables. |
+`----------------------------------*/
+
+/** Create the symbol and semantic type tables. */