Yes, that's why I wanted to experiment with boycutting the .ly->scheme-ast transformation step. I'm a much better lisper than c, so it's bit unclear to me what's going on (i've done parsers tough in the past). Are these public functions here maybe what I'm after
https://github.com/lilypond/lilypond/blob/master/lily/include/lily-guile.hh#L52-L53 because, only by (maybe false) assumption, the lilypond lexer and parser's job is to create the scheme ast in the pipeline that gets sent to another compilation step which job is to create raw typesetted output?