[clean up documentation
John Meacham <john@repetae.net>**20090823011925
 Ignore-this: bf726fb4e3951c3dddec3c75e9a611b6
] hunk ./docs/index.mkd 4
-jhc is a haskell compiler which aims to produce the most efficient programs possible via whole program analysis and other optimizations.
+jhc is a haskell compiler which aims to produce the most efficient programs
+possible via whole program analysis and other optimizations.
hunk ./docs/index.mkd 7
-Getting jhc
------------
+Using Jhc
+---------
hunk ./docs/index.mkd 10
- * See the [Installation page](building.shtml) for information about downloading and installing jhc.
- * For information on running jhc, see [The Manual](manual.html). 
+ * See the [Installation Page](building.shtml) for information about downloading and installing jhc.
+ * For information on running jhc, see [The User's Manual](manual.html).
+ * Join the [jhc mailing list](http://www.haskell.org/mailman/listinfo/jhc) for jhc discussion, announcements, and bug reports.
+ * There is a [spot on the wiki](http://haskell.org/haskellwiki/Jhc) but it doesn't have much info yet. feel free to expand it.
hunk ./docs/index.mkd 16
-Development and other info
---------------------------
+Developing Jhc
+--------------
hunk ./docs/index.mkd 21
- * the [darcs repository](http://repetae.net/repos/jhc) is where the code is housed
- * [the darcsweb repository browser](http://repetae.net/dw/darcsweb.cgi?r=jhc) can be used to see a changelog and view individual patches
+ * [Browse The Repository](http://repetae.net/dw/darcsweb.cgi?r=jhc)
hunk ./docs/index.mkd 23
- * There is a [mailing list](http://www.haskell.org/mailman/listinfo/jhc) for jhc discussion and bug reports.
- * There is a [spot on the wiki](http://haskell.org/haskellwiki/Jhc) but it doesn't have much info yet. feel free to expand it.
hunk ./docs/pragmas.mkd 3
+Pragmas are special compiler directives that change its behavior in certain
+ways. In general, each compiler is free to define its own pragmas however jhc
+does try to implement the same ones as other compilers when it makes sense.
+pragmas appear in source code  as {-# PRAGMANAME ... #-}
+
hunk ./docs/pragmas.mkd 14
-NOINLINE
-: Do not inline the given function during core transformations. The function
-_may_ be inlined during grin transformations.
-
-INLINE
-: Inline this function whenever possible
-
-SUPERINLINE
-: Always inline no matter what, even if it means making a local copy of the
-functions body.
-
-NOETA
-: When applied to a class method, do not perform eta expansion up to the number
-of arguments specified by the type.
+Pragma
+------             ----------------------------------------------------
+_NOINLINE_         Do not inline the given function during core transformations. The function _may_ be inlined during grin transformations.
+_INLINE_           Inline this function whenever possible
+_SUPERINLINE_      Always inline no matter what, even if it means making a local copy of the functions body.
+_VCONSTRUCTOR_     Treat the function as a virtual constructor. CPR analysis and the worker/wrapper transforms will treat the function application as if it were a constructor. This implies 'NOINLINE'.
+_NOETA_            By default, jhc eta-expands all class methods to help enable optimizations. This disables this optimization.
hunk ./docs/pragmas.mkd 24
-RULES
-: rewrite rules. These have the same syntax and behave like GHC's rewrite rules,
-except 'phase' information is not allowed.
-
-SPECIALIZE
-: create a version of a function that is specialized for a given type
-
-SUPERSPECIALIZE
-: has the same effect as SPECIALIZE, but also places a run-time check in the
-generic version of the function to determine whether to call the specialized
-version.
+Pragma
+------              ---------------------------------------------------
+_RULES_             rewrite rules. These have the same syntax and behave similarly to GHC's rewrite rules, except 'phase' information is not allowed.
+_SPECIALIZE_        create a version of a function that is specialized for a given type
+_SUPERSPECIALIZE_   has the same effect as SPECIALIZE, but also places a run-time check in the generic version of the function to determine whether to call the specialized version.
hunk ./docs/pragmas.mkd 36
-NOPRELUDE
-: do not load the 'Prelude' automatically. equivalent to passing --noprelude on
-the command line.
-
hunk ./lib/jhc/Jhc/ACIO.hs 34
-{-@Extensions
+{- @Extensions
hunk ./utils/stitch.prl 14
-    CrossCompilation
hunk ./utils/stitch.prl 17
+    CrossCompilation