From 9baef5e2914839d1437c0fd711da764a4538cfe4 Mon Sep 17 00:00:00 2001 From: krasimir Date: Wed, 9 Jun 2010 10:21:13 +0000 Subject: [PATCH] filter the duplications when doing 'l -table' --- src/runtime/haskell/PGF/Linearize.hs | 2 +- src/runtime/haskell/PGF/Macros.hs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/runtime/haskell/PGF/Linearize.hs b/src/runtime/haskell/PGF/Linearize.hs index 79da0e823..84b1b116f 100644 --- a/src/runtime/haskell/PGF/Linearize.hs +++ b/src/runtime/haskell/PGF/Linearize.hs @@ -63,7 +63,7 @@ type CncType = (CId, FId) -- concrete type is the abstract type (the category linTree :: PGF -> Language -> Expr -> [Array LIndex BracketedTokn] linTree pgf lang e = - [amapWithIndex (\label -> Bracket_ cat fid label [e]) lin | (_,((cat,fid),e,lin)) <- lin0 [] [] Nothing 0 e e] + nub [amapWithIndex (\label -> Bracket_ cat fid label [e]) lin | (_,((cat,fid),e,lin)) <- lin0 [] [] Nothing 0 e e] where cnc = lookMap (error "no lang") lang (concretes pgf) lp = lproductions cnc diff --git a/src/runtime/haskell/PGF/Macros.hs b/src/runtime/haskell/PGF/Macros.hs index 328bf369d..dea535af7 100644 --- a/src/runtime/haskell/PGF/Macros.hs +++ b/src/runtime/haskell/PGF/Macros.hs @@ -229,6 +229,7 @@ data BracketedTokn = LeafKS [String] | LeafKP [String] [Alternative] | Bracket_ CId {-# UNPACK #-} !FId {-# UNPACK #-} !LIndex [Expr] [BracketedTokn] -- Invariant: the list is not empty + deriving Eq type LinTable = Array.Array LIndex [BracketedTokn]