de Bruijn Notation as a Nested Datatype - Bird, R; Paterson, R (1999)