
Hello Brian, Tuesday, August 1, 2006, 4:23:53 AM, you wrote:
That's a tough call to make. Changing the kind of Sequence to * from * -> * means losing the Functor, Monad, and MonadPlus superclasses and all the various maps and zips.
But there's no option if you want to be able to support non-polymorphic sequences like Data.ByteString etc. I think the Functor class is just fundamentally too limited - it assumes the whole world is polymorphic and it isn't.
it's possible, at least in principle, to make ByteString parametric class: data PlainSequence a = ... type ByteString = PlainSequence Word8 and then rewrite all ByteString functions so that they will work with elements of any type, not just Word8 -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com