title: How does it become to particular type?
body: <p>I have following code snippet:</p>
  
  <pre><code>Prelude Data.Monoid&gt; :t 1 &lt;&gt; (2 :: Sum Integer)
  1 &lt;&gt; (2 :: Sum Integer) :: Sum Integer
  </code></pre>
  
  <p>How does <code>1</code> become to <code>Sum Integer</code> type?  </p>
  
  <p><strong>Update</strong></p>
  
  <p>I play a bit with <code>mappend</code> function and discovered:</p>
  
  <pre><code>Prelude Data.Monoid&gt; x = mappend 43
  </code></pre>
  
  <p>Why does mappend accept the number <code>43</code>? <code>43</code> is a <code>Num</code> type and it has no monoid instance.  </p>