title: $ does not always work in Haskell
body: <p>Here is a Haskell code sample.</p>
  
  <pre><code>indentBrackets (c:rest) level
     | c=='('    = "\n" ++ (replicate level ' ') ++ [c]
                        ++ (indentBrackets rest (level+1))
     | c==')'    =  [c] ++ (indentBrackets rest (level-1))
     | c=='['    = "\n" ++ (replicate level ' ') ++ [c] 
                        ++ (indentBrackets rest (level+1))
     | c==']'    =  [c] ++ (indentBrackets rest (level-1))
     | otherwise =  [c] ++ (indentBrackets rest (level  ))
  
  indentBrackets [] _ = ""
  </code></pre>
  
  <p>if I replace <code>otherwise = [c] ++ (indentBrackets rest (level))</code> with <code>otherwise = [c] ++ $ indentBrackets rest (level)</code>, I get</p>
  
  <blockquote>
    <p>src\Main.hs:182:25: parse error on input `$'</p>
  </blockquote>
  
  <p>Should not that be ok?</p>