title: What does the double-backslash \\ mean in Haskell?
body: <p>I'm trying to figure out what  <code>\\</code> means in Haskell?</p>
  
  <p>I've got a program that runs perfectly when compiled, implying that <code>\\</code> is a built-in function, since it's not defined anywhere in the program. However, in GHCi, if I try to use it in the same manner, I get an error saying it's not in the scope.</p>
  
  <p>Does it mean something special in each context?</p>
  
  <p>Here is my code;</p>
  
  <pre><code>module Main where
  
  import Data.List
  
  numbersA = [1, 105, 103, 7, 4, 102, 3, 101, 107, 8, 9]
  
  numbersB = [6, 9, 7, 8, 1, 5, 3, 2, 4]
  
  type Number = Integer
  
  type Run = [Number]
  
  extractRuns :: [Number] -&gt; [Run]
  extractRuns [] = []
  extractRuns xs = run : extractRuns xs'
                     where run = buildRun (head xs) (tail xs)
                           xs' = xs \\ run
  
  buildRun :: Number -&gt; [Number] -&gt; Run
  buildRun seed numbers
    | endRun    = [seed]
  
    | otherwise = seed : buildRun seed' numbers'
                    where endRun     = successors == []
                          successors = filter (.#. seed) numbers
                          numbers'   = numbers \\ [seed]
                          seed'      = head successors
  
  (.#.) :: Number -&gt; Number -&gt; Bool
  x .#. y = x /= y &amp;&amp; abs (x - y) &lt; 10
  
  runs = extractRuns numbersA
  
  main = print runs
  </code></pre>