<html xmlns="http://www.w3.org/1999/xhtml"
><head
  ><link rel="stylesheet" type="text/css" href="style.css"
     /><script type="text/javascript" src="highlight.js"
    ></script
    ></head
  ><body
  ><pre
    ><span class="hs-pragma"
      >{-# LANGUAGE CPP #-}</span
      ><span
      >
</span
      ><a name="line-2"
      ></a
      ><span class="hs-keyword"
      >module</span
      ><span
      > </span
      ><span class="hs-identifier"
      >CPP</span
      ><span
      > </span
      ><span class="hs-keyword"
      >where</span
      ><span
      >
</span
      ><a name="line-3"
      ></a
      ><span
      >
</span
      ><a name="line-4"
      ></a
      ><span class="hs-cpp"
      >#define SOMETHING1
</span
      ><span
      >
</span
      ><a name="line-6"
      ></a
      ><span class="hs-identifier"
      >foo</span
      ><span
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span
      > </span
      ><span class="hs-identifier hs-type"
      >String</span
      ><span
      >
</span
      ><a name="line-7"
      ></a
      ><a name="foo"
      ><a href="CPP.html#foo"
	><span class="hs-identifier"
	  >foo</span
	  ></a
	></a
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-comment"
      >{-  &quot; single quotes are fine in block comments
          {- nested block comments are fine -}
       -}</span
      ><span
      > </span
      ><span class="hs-string"
      >&quot;foo&quot;</span
      ><span
      >
</span
      ><a name="line-10"
      ></a
      ><span
      >
</span
      ><a name="line-11"
      ></a
      ><span class="hs-cpp"
      >#define SOMETHING2
</span
      ><span
      >
</span
      ><a name="line-13"
      ></a
      ><span class="hs-identifier"
      >bar</span
      ><span
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span
      > </span
      ><span class="hs-identifier hs-type"
      >String</span
      ><span
      >
</span
      ><a name="line-14"
      ></a
      ><a name="bar"
      ><a href="CPP.html#bar"
	><span class="hs-identifier"
	  >bar</span
	  ></a
	></a
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-string"
      >&quot;block comment in a string is not a comment {- &quot;</span
      ><span
      >
</span
      ><a name="line-15"
      ></a
      ><span
      >
</span
      ><a name="line-16"
      ></a
      ><span class="hs-cpp"
      >#define SOMETHING3
</span
      ><span
      >
</span
      ><a name="line-18"
      ></a
      ><span class="hs-comment"
      >-- &quot; single quotes are fine in line comments</span
      ><span
      >
</span
      ><a name="line-19"
      ></a
      ><span class="hs-comment"
      >-- {- unclosed block comments are fine in line comments</span
      ><span
      >
</span
      ><a name="line-20"
      ></a
      ><span
      >
</span
      ><a name="line-21"
      ></a
      ><span class="hs-comment"
      >-- Multiline CPP is also fine</span
      ><span
      >
</span
      ><a name="line-22"
      ></a
      ><span class="hs-cpp"
      >#define FOO\
  1
</span
      ><span
      >
</span
      ><a name="line-25"
      ></a
      ><span class="hs-identifier"
      >baz</span
      ><span
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span
      > </span
      ><span class="hs-identifier hs-type"
      >String</span
      ><span
      >
</span
      ><a name="line-26"
      ></a
      ><a name="baz"
      ><a href="CPP.html#baz"
	><span class="hs-identifier"
	  >baz</span
	  ></a
	></a
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-string"
      >&quot;line comment in a string is not a comment --&quot;</span
      ><span
      >
</span
      ><a name="line-27"
      ></a
      ></pre
    ></body
  ></html
>