title: String interpolation in Haskell
body: <p>I want to write the code that will output :</p>
  
  <pre><code>length [1,2,3] =&gt; 3   
  </code></pre>
  
  <p>In Ruby, I could do it like :</p>
  
  <pre><code>puts "length [1,2,3] =&gt; #{[1,2,3].length}"
  </code></pre>
  
  <p>Following try is Haskell failed... </p>
  
  <pre><code>Prelude Data.List&gt; print "length [1,2,3]"
  "length [1,2,3]"
  Prelude Data.List&gt; print (length [1,2,3])
  3
  Prelude Data.List&gt; print "length [1,2,3]" (length [1,2,3])
  
  &lt;interactive&gt;:1:0:
    Couldn't match expected type `Int -&gt; t'
       against inferred type `IO ()'
   In the expression: print "length [1,2,3]" (length [1, 2, 3])
   In the definition of `it':
        it = print "length [1,2,3]" (length [1, 2, 3])
   Prelude Data.List&gt;
  </code></pre>