At 2002-05-24 13:40, Wolfgang Jeltsch wrote:

>Now, I have a type which would fit wonderfully into the Arrow concept if
>arrows wouldn't be expected to have a first operator.

...then it's not an Arrow. It sounds like it might be one of these, 
however:

    class Compositor comp where
        {
        identity :: comp a a;
                compose :: comp b c -> comp a b -> comp a c;
                };

I'm not sure if 'Compositor' is a good name for it, or what.

>Parser arrow. And there is also a meaningful definition for pure (arr).
>pure f just has to be a parser which reads exactly one token, applies f
>to it and outputs the resulting value.
>The problem is that there seems to be no appropriate definition for
>first. That's why, in my opinion, it would be very good to have only the

Can't you have a parser that reads in one token tuple, and apply another 
parser to the first part of it only?

Otherwise, perhaps you could have classes like this:

           class (Compositor arrow) => Semiarrow arrow where
        {
                arr :: (p -> q) -> arrow p q;
                };

        class (Semiarrow arrow) => Arrow arrow where
                {
                arrFirst :: arrow p q -> arrow (p,r) (q,r);
                };


-- 
Ashley Yakeley, Seattle WA

_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to