[fix bug where constant partial applications would not propegate constraints properly
John Meacham <john@repetae.net>**20090901013613
 Ignore-this: 4cde75f8f788fc2d93b620295d0fb408
] hunk ./src/Grin/NodeAnalyze.hs 126
-    (rm,res) <- solve (const (return ())) cs
-    --(rm,res) <- solve putStrLn cs
+    --(rm,res) <- solve (const (return ())) cs
+    (rm,res) <- solve putStrLn cs
hunk ./src/Grin/NodeAnalyze.hs 247
-    convertVal (Const (NodeC t _)) = return $ Right (N WHNF (Only $ Set.singleton t))
+    convertVal (Const n@(NodeC _ _)) = convertVal n
hunk ./src/Grin/NodeAnalyze.hs 267
---bottom = N WHNF (Only (Set.empty))
+bottom = N WHNF (Only (Set.empty))
hunk ./src/Grin/NodeAnalyze.hs 366
+        (TyINode,Just ResultBounded { resultLB = Nothing }) -> True
hunk ./src/Grin/NodeAnalyze.hs 375
+        Just ResultBounded { resultLB = Nothing } -> return bottom
hunk ./src/Grin/SSimplify.hs 174
-    f (Return [v@Const {}]) ((senv,[Var vn _],b):rs) = do
+    f (Return [v]) ((senv,[Var vn _],b):rs) | valIsConstant v = do
hunk ./src/Util/UnionSolve.hs 167
-                    | otherwise -> fail $ "UnionSolve: equality constraints don't match " ++ show (c,v)
+                    | otherwise -> fail $ "UnionSolve: equality constraints don't match " ++ show (c,v)  ++ " when setting " ++ show (fromElement xe)
hunk ./src/Util/UnionSolve.hs 230
+                            updateW (const (Ri xml xlb newxu (Set.delete xe $ Set.insert ye xub))) xe
hunk ./src/Util/UnionSolve.hs 234
-                            updateW (const (Ri xml xlb (mmeet ymu xmu) (Set.delete xe $ Set.insert ye xub))) xe
hunk ./src/Util/UnionSolve.hs 235
+                            updateW (const (Ri newyl (Set.delete ye $ Set.insert xe ylb) ymu yub)) ye
hunk ./src/Util/UnionSolve.hs 239
-                            updateW (const (Ri newyl (Set.delete ye $ Set.insert xe ylb) ymu yub)) ye