What is the LBChange used for in Helvetia? I see that in every language box there is one #change: which returns a new LBChange.
The language change is used to encapsulate a local grammar adaption applied to the grammar of the host language. In our case a language extension is defined as a grammar fragment and a specification of how this fragment is composed with the grammar of the host language.
For a detailled explanation see "Chapter 5.2.1 Language Change" in my PhD Thesis.