symbol_t* symbol_copy (symbol_t*);
guint symbol_hash (gconstpointer);
gboolean symbol_equal (gconstpointer, gconstpointer);
+gint symbol_cmp (symbol_t*, symbol_t*);
rule_t* rule_new ();
rule_t* rule_copy (rule_t*);
+gint rule_cmp (rule_t*, rule_t*);
+gboolean rule_equal (gconstpointer, gconstpointer);
+guint rule_hash (gconstpointer);
symbol_t* rule_pop (rule_t*);
void rule_append (rule_t*, symbol_t*);
void rule_delete (rule_t*);