On 10 Feb 2009, at 07:57, Max Rabkin wrote:

On Mon, Feb 9, 2009 at 10:50 PM, Iavor Diatchki
<iavor.diatc...@gmail.com> wrote:
I 0 * _       = I 0
I x * I y     = I (x * y)

Note that (*) is now non-commutative (w.r.t. _|_). Of course, that's
what we need here, but it means that the "obviously correct"
transformation of

just to improve slightly:

I 0 |* _   = I 0
I x |* I y = I (x * y)

_ *| I 0   = I 0
I x *| I y = I (x * y)

I x * | y = (I x |* I y) `unamb` (I x *| I y)

Now it is commutative :)

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

Reply via email to