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