diff options
| author | aarne <unknown> | 2005-02-05 20:52:31 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2005-02-05 20:52:31 +0000 |
| commit | a1e8229910bbd01135d0e71c459872f87785a291 (patch) | |
| tree | 16612ffa6d974da1fb8e4234f134e5f97c0ad9af /src/GF/Canon/CanonToGrammar.hs | |
| parent | 45f3b7d5e74dde250a3e0eb92469efc22479cd30 (diff) | |
cleand up Structural
Diffstat (limited to 'src/GF/Canon/CanonToGrammar.hs')
| -rw-r--r-- | src/GF/Canon/CanonToGrammar.hs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/GF/Canon/CanonToGrammar.hs b/src/GF/Canon/CanonToGrammar.hs index cd4863442..16c2ae1f0 100644 --- a/src/GF/Canon/CanonToGrammar.hs +++ b/src/GF/Canon/CanonToGrammar.hs @@ -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 |
