Changed "generalize; clear" to "revert".
Typo in a comment.
Added a study of other approaches, including Function and Program.