this isn't nearly good enough as a comment. What's a Nil? What's a One? What are contexts?