This could be improved. You know that for each context, the prototype must be an array node (as it contains an array of arguments). The variable node only need to be inside it.

This would impact the way configurations are merged though