anchor.diff:  
   Next, we're going to generate some identifiers to be used by our widget. It's
   always good practice to let Yesod generate unique identifiers for you instead
  -of creating them manually to avoid name collissions.
  +of creating them manually to avoid name collisions.
   
   [source, haskell]
   ----
  
positive.code: CSS, and Javascript as a reusable component.
  
  Our widget will need to take in one argument: a function to convert a +Chat+
  subsite URL into a master site URL. The reasoning here is that a application
  developet could place the chat subsite anywhere in the URL structure, and this
  widget needs to be able to generate Javascript which will point at the correct
  URLs. Let's start off our widget:
  
  
negative.code: 
  We use +dupChan+ so that each new connection receives its own copy of newly
  generated messages. This is a standard method in concurrent Haskell of creating
  broadcast channels. The last three lines of our function expose the underlying
  +wai-eventsource+ application as a Yesod handler, by getting the raw WAI
  request, running the application on that request, and then sending the raw WAI
  response.
  