Krzysztof Kościuszkiewicz wrote:
So the type of mapM_ used in the code is
(Foldable t, Monad m) => (a -> m b) -> t a -> m ()

I'd like to keep the generic Foldable t there when "m" is specialized to IO.
I thought this would allow type of "reversor" to be specialized to
(Foldable f) => [String] -> f String
... I'd like to avoid [a] -> something -> [a]

Yes this type should be fine. To implement reversor though you'd still need to first convert from the concrete list to whatever foldable you're using, before reversing the foldable, or implement something more general eg:

    reversor :: (Foldable f, Foldable g) :: f a -> g a

Of course with lazy evaluation + compiler optimizations the lists in [a] -> something -> [a] should be erased at compile time... ;-)

Regards, Brian.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to