update to mention "functions as terminals", left recursion example