An interpreter for scheme, written in scheme