De Bruijn also invented De Bruijn indices for handling bound variables in lambda calculus without having to deal with renaming. De Bruijn indices are used to implement practically every modern functional programming language. They are also quite beautiful. http://en.wikipedia.org/wiki/De_Bruijn_index