[code cleanups. pretty print lists in a more compact way
John Meacham <john@repetae.net>**20060128220512] hunk ./C/FromGrin.hs 383
-
-isVar Var {} = True
-isVar _ = False
hunk ./Grin/Grin.hs 49
-    v0,v1,v2,v3,
+    v0,v1,v2,v3,lamExp,lamBind,
+    isVar,isTup,modifyTail,valIsConstant,
hunk ./Grin/Grin.hs 658
+lamExp (_ :-> e) = e
+lamBind (b :-> _) = b
+
+isVar Var {} = True
+isVar _ = False
+
+isTup Tup {} = True
+isTup _ = False
+
+modifyTail lam@(_ :-> lb) e = f e where
+    f (Error s ty) = Error s (getType lb)
+    f (Case x ls) = Case x (map g ls)
+    f (e1 :>>= p :-> e2) = e1 :>>= p :-> f e2
+    f e = e :>>= lam
+    g (p :-> e) = p :-> f e
+
+valIsConstant :: Val -> Bool
+valIsConstant (Tup xs) = all valIsConstant xs
+valIsConstant (NodeC _ xs) = all valIsConstant xs
+valIsConstant Tag {} = True
+valIsConstant Lit {} = True
+valIsConstant Const {} = True
+valIsConstant (Var v _) | v < v0 = True
+valIsConstant ValPrim {} = True
+valIsConstant _ = False
hunk ./Grin/Show.hs 20
+
+
hunk ./Grin/Show.hs 72
+prettyVal s | Just [] <- valToList s = text "[]"
hunk ./Grin/Show.hs 74
+prettyVal s | Just vs <- valToList s = list $ map prettyVal vs
hunk ./Grin/Show.hs 89
---prettyVal Unit = text "()"
hunk ./Grin/Simplify.hs 250
-modifyTail lam@(_ :-> lb) e = f e where
-    f (Error s ty) = Error s (getType lb)
-    f (Case x ls) = Case x (map g ls)
-    f (e1 :>>= p :-> e2) = e1 :>>= p :-> f e2
-    f e = e :>>= lam
-    g (p :-> e) = p :-> f e
-
-
-lamExp (_ :-> e) = e
-lamBind (b :-> _) = b
-
-isVar Var {} = True
-isVar _ = False
-isTup Tup {} = True
-isTup _ = False
hunk ./Grin/Simplify.hs 530
-valIsConstant :: Val -> Bool
-valIsConstant (Tup xs) = all valIsConstant xs
-valIsConstant (NodeC _ xs) = all valIsConstant xs
-valIsConstant Tag {} = True
-valIsConstant Lit {} = True
-valIsConstant Const {} = True
-valIsConstant (Var v _) | v < v0 = True
-valIsConstant ValPrim {} = True
-valIsConstant _ = False
hunk ./Grin/Val.hs 1
-module Grin.Val(FromVal(..),ToVal(..),cChar,cInt,tn_2Tup,world__,pworld__) where
+module Grin.Val(FromVal(..),ToVal(..),cChar,cInt,tn_2Tup,world__,pworld__,valToList) where
hunk ./Grin/Val.hs 100
+valToList (NodeC n []) | n == nil = return []
+valToList (NodeC n [a,Const b]) | n == cons = do
+        xs <- valToList b
+        return (a:xs)
+valToList n = fail $ "Val is not [a]: " ++ show n
+