title: Creating polymorphic functions in Haskell
body: <p>A short search didn't help me to find the answer, so I started to doubt in its existance. The question is simple. I want to create a polymorphic function, something like this:</p>
  
  <pre><code>f :: String -&gt; String
  f s = show (length s)
  
  f :: Int -&gt; String
  f i = show i
  </code></pre>
  
  <p>A function defined differently for different data types is meant. Is it possible? If yes, how?</p>