AG: Automatically derive Functor, Foldable, Traversable for Free.
AG: Imports alphabetically ordered.
AG: Added LANGUAGE NoMonomorphismRestriction.
AG: Refactored code for Monad instance using for.
AG: Moved code concerning Tree.
AG: Added Applicative instance.
AG: Use record notation of Numbered.
AG: Refactored number.
AG: Commented closed expression trees, refactored freeTree.
AG: haddock section headings and comments.
AG: Express NumMap instance of Mapping in terms of IntMap instance.
Projection: Alphabetically sort LANGUAGE pragmas.
Projection: Haddockumentation for whole module.
AG: Added to documentation of above and below.
AG: Rewrote and documented runAG.
AG: Rewrote runRewrite.
Merge pull request #1 from andreasabel/master

Some reformulations and documentation