[fix bug in UnionSolve that caused it to not always propegate changes caused by lte constraints properly
John Meacham <john@repetae.net>**20090831121300
 Ignore-this: 6d1117b7936f9ec08c8b62f6f06f7ced
] hunk ./src/Util/UnionSolve.hs 217
-                    xlb <- finds xlb
-                    if ye `Set.member` xub then return () else do
hunk ./src/Util/UnionSolve.hs 218
+                    if ye `Set.member` xub then return () else do
+                    xlb <- finds xlb
hunk ./src/Util/UnionSolve.hs 225
-                            xlb <- finds xlb
+                            ylb <- finds ylb
hunk ./src/Util/UnionSolve.hs 227
-                            xub <- finds xub
+                            yub <- finds yub
hunk ./src/Util/UnionSolve.hs 229
+                            let newxu = mmeet ymu xmu
+                            case newxu of
+                                Just v -> mapM_ (v `greaterThen`) (Set.toList xlb)
+                                _ -> return ()
hunk ./src/Util/UnionSolve.hs 234
-                            updateW (const (Ri (mjoin yml xml) (Set.delete ye $ Set.insert xe ylb) ymu yub)) ye
+                            let newyl = mjoin yml xml
+                            case newyl of
+                                Just v -> mapM_ (v `lessThen`) (Set.toList yub)
+                                _ -> return ()
+                            updateW (const (Ri newyl (Set.delete ye $ Set.insert xe ylb) ymu yub)) ye