On Tue, 2009-02-10 at 08:03 +0100, Thomas Davie wrote:
> 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

See `parCommute` from the 'lub' package :)

Attachment: signature.asc
Description: This is a digitally signed message part

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

Reply via email to