Scheme Programming Language, Part I: Denotational Semantics, Natural Semantics, and