[TemplatesHSP: minor editing Jeremy Shaw **20120204031424 Ignore-this: e05db2ca9ecd984ed0d378d945a8da31 ] hunk ./TemplatesHSP.markdown.lhs 17 -> {-# OPTIONS_GHC -F -pgmFtrhsx #-} +> {-# OPTIONS_GHC -F -pgmF trhsx #-} hunk ./TemplatesHSP.markdown.lhs 23 -HSP works by running the code through an external pre-processor named `trhsx`. This pragma at the top is how we tell GHC that this file needs to be run through the `trhsx` pre-processor in order to work. +HSP works by running the code through an external pre-processor named `trhsx`. This pragma at the top is how we tell GHC that this file needs to be run through the `trhsx` pre-processor in order to work. So, that options line looks a bit like line noise. You can try to remember it like this: + + 1. `-F` says we want to filter the source code (or maybe trans*F*orm the source code) + 2. `-pgmF` specifies the program we want to do the transformation + 3. `trhsx` is short for *tr*ansform using *hsx* hunk ./TemplatesHSP.markdown.lhs 57 ->
+>
hunk ./TemplatesHSP.markdown.lhs 179 -The `data` and `type` declarations appearing inside the class declaration are allowed because of the `TypeFamalies` extension. For a detailed coverage of type famalies see this wiki entry. +The `data` and `type` declarations appearing inside the class declaration are allowed because of the `TypeFamilies` extension. For a detailed coverage of type families see this wiki entry. hunk ./TemplatesHSP.markdown.lhs 191 -`XML m` is a synoynm for whatever the xml type is for the monad `m`. We can write an XML fragment that is parameterized over an arbitrary monad and xml type like this: +`XML m` is a synonym for whatever the xml type is for the monad `m`. We can write an XML fragment that is parameterized over an arbitrary monad and xml type like this: hunk ./TemplatesHSP.markdown.lhs 495 +