+//urg
+extern char const* lily_version_number_sz ();
+
+void
+output_def (Paper_outputter* p, String key, String val)
+{
+ SCM args_scm =
+ gh_cons (gh_str02scm (key.ch_l ()), gh_cons (gh_str02scm (val.ch_l ()), SCM_EOL));
+ SCM scm =
+ ly_append (ly_lambda_o (),
+ ly_list1 (ly_append (ly_func_o ("lily-def"), args_scm)));
+ p->output_scheme (scm);
+}
+
+void
+output_header (Paper_outputter* p, Scope *head)
+{
+ if (!head)
+ return;
+
+ String id_str = "Lily was here";
+ if (no_timestamps_global_b)
+ id_str += ".";
+ else
+ id_str += String (", ") + lily_version_number_sz ();
+ output_def (p, "lily_id_string", id_str);
+
+ for (Dictionary_iter<Identifier*> i (*head); i.ok (); i++)
+ {
+ if (!i.val ()->access_String_identifier ())
+ continue;
+
+ String val = *i.val()->access_String_identifier ()->data_p_;
+ output_def (p, i.key (), val);
+ }
+}
+
+void
+Paper_def::output_settings (Paper_outputter* p) const