Hallo Manuela,
ein "Problem" liegt gewissermasen in der allgemeinen Funktionssyntax: Wo endet die Liste der an die Funktion zu übergebenden Parameter?
Vor allem, wenn deine Funktion innerhalb einer "Sequential Music" steht und mit nur zwei Parametern aufgerufen werden soll, aber danach ein weiteres ly:music?-Element kommen soll, dann wird es schon schwierig es eindeutig zu definieren.
Mein Trick ist, eine Funktion zu definieren, welche zwar eine feste Anzahl von Parametern fordert, aber als Typ quasi »ly:music-or-boolean?« akzeptiert. Im Aufruf wird dann ##f für das »nicht vorhandene optionale Argument« angegeben. Und anhand einer Typabfrage entscheidet das Programm, was zu tun ist.
Ich müßte noch mal in meinem "line breaking rehearsal mark" nachsehen, was ich dort angestellt habe, denn dort können für den "linken" und für den "rechten" Text eine Zeichenkette, ein Markup, der Logikwert ##t oder der Logikwert ##f angegeben werden, um verschiedenen effekte zu erzielen.
Arnold