Hi Andy, Ludo, LilyPond code uses (begin) as a special list terminator for some data structures, and tests this using a custom predicate void: (define-public (void? x) (eq? x (begin))) This works in V1.8, and apparently used to work in 2.0.2 (no errors), but in 2.0.3 (begin) is OK at the repl, (with readline enabled and activated), but in any sort of procedure using it causes a diagnostic, reporting either at the repl or in .scm files,
xxx: source expression failed to match any pattern in form (begin). The documentation says: 6.13.1 Evaluating a series of expressions <snip> — syntax: begin expr1 expr2 ... The expression(s) are evaluated in left-to-right order and the value of the last expression is returned as the value of the begin-expression. This expression type is used when the expressions before the last one are evaluated for their side effects. Guile also allows the expression (begin), a begin with no sub-expressions. Such an expression returns the `unspecified' value. How do we mend our code, or has Guile V2.0.3 broken? Cheers, Ian Hulin