On Tue, Aug 30, 2011 at 9:42 AM, Conal Elliott <span dir="ltr">&lt;<a href="mailto:conal@conal.net">conal@conal.net</a>&gt;</span> wrote:<br>&gt; I suspect this definition is what Sebastian meant by &quot;converting back and forth to ordinary lists&quot;.<br>
<br>Yep, I know; and technically it violates &#39;fmap id&#39; == &#39;id&#39;<br><br>for example,<br>fmap id (FList $ \xs -&gt; xs ++ xs) = FList $ \xs -&gt; xs<br><br>If you add this FList law, though, you&#39;re OK:<br>
<br>runFList fl as = runFList fl [] ++ as<br><br>But, yes, this definition of fmap converts back to an ordinary list representation.<br><br>  -- ryan<br>