title: creating a backward list using recursive data type in Haskell
body: <p>I am trying to create a backward list using Haskell's recursive types</p>
  
  <pre><code>data RevList a = Snoc a (RevList a) | Lin
      deriving Show 
  
  mkrevlst [] = Lin
  mkrevlst (x:xs) = mkrevlst xs Snoc x 
  </code></pre>
  
  <p>When I do <code>&gt; mkrevlst [1,2,3]</code> ,the output I am expecting is : <code>((Lin Snoc 3) Snoc 2) Snoc 1</code></p>
  
  <p>When I run this I get an error. I am new to Haskell &amp; I am not able to make out where is mistake is. 
  Where am I going wrong?</p>
  
  <p>Thank you.</p>