The nth attempt at the sicp.