diff options
Diffstat (limited to 'src/compiler/GF/Grammar/Macros.hs')
| -rw-r--r-- | src/compiler/GF/Grammar/Macros.hs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/compiler/GF/Grammar/Macros.hs b/src/compiler/GF/Grammar/Macros.hs index 97146b197..bd7de5db4 100644 --- a/src/compiler/GF/Grammar/Macros.hs +++ b/src/compiler/GF/Grammar/Macros.hs @@ -483,6 +483,8 @@ composOp co trm = ImplArg t -> liftM ImplArg (co t) _ -> return trm -- covers K, Vr, Cn, Sort, EPatt +composSafePattOp op = runIdentity . composPattOp (return . op) + composPattOp :: Monad m => (Patt -> m Patt) -> Patt -> m Patt composPattOp op patt = case patt of @@ -495,6 +497,7 @@ composPattOp op patt = PNeg p -> liftM PNeg (op p) PAlt p1 p2 -> liftM2 PAlt (op p1) (op p2) PSeq p1 p2 -> liftM2 PSeq (op p1) (op p2) + PMSeq (_,p1) (_,p2) -> liftM2 PSeq (op p1) (op p2) -- information loss PRep p -> liftM PRep (op p) _ -> return patt -- covers cases without subpatterns @@ -545,6 +548,7 @@ collectPattOp op patt = PNeg p -> op p PAlt p1 p2 -> op p1++op p2 PSeq p1 p2 -> op p1++op p2 + PMSeq (_,p1) (_,p2) -> op p1++op p2 PRep p -> op p _ -> [] -- covers cases without subpatterns |
