+void msg_location_uninit (struct msg_location *);
+void msg_location_destroy (struct msg_location *);
+struct msg_location *msg_location_dup (const struct msg_location *);
+
+bool msg_location_is_empty (const struct msg_location *);
+void msg_location_format (const struct msg_location *, struct string *);
+
+struct msg_stack
+ {
+ struct msg_location *location;
+ char *description;
+ };
+
+void msg_stack_destroy (struct msg_stack *);
+struct msg_stack *msg_stack_dup (const struct msg_stack *);
+