Range of unicode characters GHC accepts : <p>This may sound a bit ridiculous, but GHC fails to compile my string containing bacon, a croissant, cucumber, and a potato:</p>

<pre><code>main = putStrLn "🥓  🥐  🥒  🥔"
</code></pre>

<p>I realize I could easily write</p>

<pre><code>main = putStrLn "\x1F953  \x1F950  \x1F952  \x1F954"
</code></pre>

<p>to the same effect, but I had always assumed GHC would accept any unicode in its source. So: <strong>what are the actual restrictions on unicode characters GHC accepts in source files</strong>?</p>

<hr>

<p>BTW: I realize that supporting this sort of thing is hell for the GHC lexer (actually I ran across the above problem while writing test cases for a lexer I wrote), but I still am a tad bit disappointed.</p>
