title: What is the type of Nothing in Haskell?
body: <p>I'm at page <a href="http://learnyouahaskell.com/making-our-own-types-and-typeclasses#type-parameters" rel="noreferrer">118</a> of the book "Learn You a Haskell for Great Good!"</p>
  
  <p>It is written there:</p>
  
  <pre><code>ghci&gt; :t Nothing 
  Nothing :: Maybe a
  </code></pre>
  
  <p>Here is my question:</p>
  
  <p>If I understand correctly, <code>Nothing</code> is a value and only concrete types can have values, but <code>Maybe a</code> is not a concrete type. So how can it have the value <code>Nothing</code>?</p>
  
  <p>The book also says: </p>
  
  <blockquote>
    <p>Notice that the type of Nothing is Maybe a. Its type is polymorphic.</p>
  </blockquote>
  
  <p>What does polymorphic type mean? How should I understand this? Is this not in contradiction with the rule that only concrete types can have values? </p>
  
  <p>EDIT:</p>
  
  <p>From the PDF version of the book :</p>
  
  <blockquote>
    <p>We say that a type is concrete if it doesn't take any type parameters
    at all (like Int or Bool), or if it takes type parameters and they're
    all filled up (like Maybe Char). If you have some value, its type is
    always a concrete type.</p>
  </blockquote>