title: Illegal binding of built-in syntax: `:`
body: <p>I need to build custom <em>Stream</em> data type.
  It's like list data type, but for infinite lists only (without empty list possibility).</p>
  
  <p>I found list data type -  </p>
  
  <pre><code>data [] a = a : [a] | []
  </code></pre>
  
  <p>and I wrote this:</p>
  
  <pre><code>data Stream a = a : (Stream a)
  </code></pre>
  
  <p>but GHCi gives error message:</p>
  
  <blockquote>
    <p>Illegal binding of built-in syntax: :</p>
  </blockquote>
  
  <p>what's wrong this my data type declaration? </p>