On Tue, Aug 30, 2011 at 9:42 AM, Conal Elliott <conal@conal.net> wrote:
> I suspect this definition is what Sebastian meant by "converting back and forth to ordinary lists".

Yep, I know; and technically it violates 'fmap id' == 'id'

for example,
fmap id (FList $ \xs -> xs ++ xs) = FList $ \xs -> xs

If you add this FList law, though, you're OK:

runFList fl as = runFList fl [] ++ as

But, yes, this definition of fmap converts back to an ordinary list representation.

  -- ryan