title: Generate a random string at compile time or run time and use it in the rest of the program
body: <p>What would be the best way to do this? <code>unsafePerformIO</code>? Template Haskell? Something else? I have never used either of those so I don't know many of the details of using them.</p>
  
  <p>Note that the program will be compiled every time it is run, so it doesn't matter if I generate the string at compile time or run time. I also need to use this string in tons of places throughout the code so I can't really do it the 'proper' way and have it be an IO action, that would require far too much other code to be put into the IO monad.</p>