cleand up Structural

This commit is contained in:
aarne
2005-02-05 20:52:31 +00:00
parent 45f3b7d5e7
commit a1e8229910
17 changed files with 84 additions and 48 deletions

View File

@@ -143,13 +143,13 @@ redCTerm x = case x of
P term label -> liftM2 G.P (redCTerm term) (return $ redLabel label)
T ctype cases -> do
ctype' <- redCType ctype
let (ps,ts) = unzip [(p,t) | Cas ps t <- cases, p <- ps] --- destroys sharing
ps' <- mapM redPatt ps
ts' <- mapM redCTerm ts --- duplicates work for shared rhss
let (ps,ts) = unzip [(ps,t) | Cas ps t <- cases]
ps' <- mapM (mapM redPatt) ps
ts' <- mapM redCTerm ts
let tinfo = case ps' of
[G.PV _] -> G.TTyped ctype'
[[G.PV _]] -> G.TTyped ctype'
_ -> G.TComp ctype'
return $ G.T tinfo $ zip ps' ts'
return $ G.TSh tinfo $ zip ps' ts'
V ctype ts -> do
ctype' <- redCType ctype
ts' <- mapM redCTerm ts