Explanation of common data structures
note about var restrictions
polishing IO
a bunch of cosmetics changes

stuff for supercompilation was removed (to simplify presentation)
example programs are in files instead of polluting Haskell source
explanation for tricky functions (in DataUtil)
extracting GenVar into a separate module
explicitly stating assumptions (about flat expressions, etc)