The second challenge is the integration of Scheme as an extension language in LilyPond input files. Actually this works quite smoothly because LilyPond's language itself is parsed in a way that is very close to Scheme. But on the other hand this affinity can be confusing to the user. I will give particular emphasis on disentangling these things by discussing Scheme always from the perspective of a LilyPond user. After the general Scheme bookpart I will cover the integration of Scheme in LilyPond in more depth, in a bookpart dedicated to the integration of Scheme in LilyPond.