[get rid of Grin 'Cast' primitive as it is subsumed by the 'Prim' constructor
John Meacham <john@repetae.net>**20060407080717] hunk ./C/FromGrin.hs 122
-convertExp (Cast x t) = do
-    x' <- convertVal x
-    t' <- convertType t
-    return $ (mempty, cast t' x')
hunk ./Grin/DeadCode.hs 128
-            g (Cast x _) = addRule $ doNode x
hunk ./Grin/DeadCode.hs 136
-            h (p,Cast v _) = addRule $ mconcat $ [ conditionalRule id  (varValue pv) (doNode v) | pv <- freeVars p]
hunk ./Grin/Fizz.hs 100
-    f (Cast v t) = do
-        v <- g v
-        return $ Cast v t
hunk ./Grin/Grin.hs 154
-    | Cast { expValue :: Val, expType :: Ty }          -- ^ reinterpret Val as a different type  (this should be a primitive)
hunk ./Grin/Grin.hs 448
-    typecheck te (Cast _ t) = return t
hunk ./Grin/Grin.hs 481
-    getType (Cast _ t) =  t
hunk ./Grin/Grin.hs 516
-    freeVars (Cast x _) = freeVars x
hunk ./Grin/Grin.hs 552
-    freeVars (Cast x _) = freeVars x
hunk ./Grin/Interpret.hs 126
-    f env (Cast v nt) | Lit i _ <- le env v = return (Lit i nt)
hunk ./Grin/Linear.hs 68
-    h Cast {} = return ()   -- casts argument is never a node pointer
hunk ./Grin/Optimize.hs 91
-isOmittable (Cast {}) = True
hunk ./Grin/PointsToAnalysis.hs 493
-    g (Cast v _) = toPos v
hunk ./Grin/Show.hs 68
-prettyExp vl (Cast x _) = vl <> keyword "cast" <+> prettyVal x
hunk ./Grin/Simplify.hs 76
-    gs (Cast (Lit i _) nty) = do
-        lift $ tick stats at_OptSimplifyCastLit
-        return $ Return (Lit i nty)
hunk ./Grin/Simplify.hs 458
-isOmittable (Cast {}) = True
hunk ./Grin/Whiz.hs 178
-    f (Cast v t) = do
-        v <- g v
-        return $ Cast v t