title: Can the Traversable laws be derived from the fact that every Traversable is also a Functor?
body: <p>I've been thinking why does the <code>Traversable</code> type class require both a <code>Functor</code> and <code>Foldable</code>, and not just the <code>Foldable</code>, since it doesn't use any part of the <code>Functor</code>?</p>
  
  <pre><code>class (Functor t, Foldable t) =&gt; Traversable t where
      traverse  :: Applicative f =&gt; (a -&gt; f b) -&gt; t a -&gt; f (t b)
      sequenceA :: Applicative f =&gt; t (f a) -&gt; f (t a)
  </code></pre>
  
  <p>Is seems that the laws for Traversable <a href="https://hackage.haskell.org/package/base-4.6.0.0/docs/Data-Traversable.html">were not present in the documentation for base 4.6</a>, which makes me think that they could be derived from the fact that <em>every Traversable is a Functor</em>?</p>
  
  <p>In the <a href="http://www.cs.ox.ac.uk/jeremy.gibbons/publications/iterator.pdf"><em>Essence of the Iterator Pattern</em> paper (section 5.1)</a> it states that there are some free theorems for <code>traverse</code> which come directly from its type, but the paper doesn't go into depth describing why this is the case.</p>
  
  <p>Where do the <code>Traversable</code> <a href="https://hackage.haskell.org/package/base-4.7.0.0/docs/Data-Traversable.html">laws as described in the base 4.7 documentation</a> come from?</p>