UNB/ CS/ David Bremner/ teaching/ cs4613/ lectures/ Lecture 5: substitution, lazy evaluation, and de Bruijn indices