on master help sign in
Use Set to remove duplicate constraints
535346dEdwin Brady
src/Idris/Core/Constraints.hs+2−1
@@ -8,6 +8,7 @@ import Control.Applicative
8import Control.Arrow
8import Control.Arrow
9import Control.Monad.RWS
9import Control.Monad.RWS
10import Control.Monad.State
10import Control.Monad.State
11+import qualified Data.Set as S
11import Data.List
12import Data.List
12import Data.Maybe
13import Data.Maybe
13import qualified Data.Map.Strict as M
14import qualified Data.Map.Strict as M
@@ -19,7 +20,7 @@ ucheck :: [(UConstraint, FC)] -> TC ()
19ucheck cs = acyclic rels (map fst (M.toList rels))
20ucheck cs = acyclic rels (map fst (M.toList rels))
20 where lhs (ULT l _) = l
21 where lhs (ULT l _) = l
21 lhs (ULE l _) = l
22 lhs (ULE l _) = l
22− cs' = nub cs
23+ cs' = S.toList (S.fromList cs)
23 rels = mkRels cs' M.empty
24 rels = mkRels cs' M.empty
24
25
25type Relations = M.Map UExp [(UConstraint, FC)]
26type Relations = M.Map UExp [(UConstraint, FC)]