If Scheme is not taught in the class then it is obviously not a first year class. Students must first master the basics before moving on to other, useful languages. Metacircular evaluation only buys you so much before you have to switch to a language that has the power of static typing. How do you even keep track of which cons cell is what? They're everywhere! You might as well be manually managing memory through pointer arithmetic given how unproductive you're going to be Scheme. It's maddening and simply unsuitable for day-to-day life. That's why I use Haskell. All day, every day. -dons