[project @ 1996-01-11 14:06:51 by partain]
[ghc-hetmet.git] / ghc / lib / ghc / Set_mg.hi
index b0f9dee..ad1d956 100644 (file)
@@ -1,36 +1,38 @@
 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
 interface Set where
-import FiniteMap(FiniteMap, intersectFM, keysFM, minusFM, plusFM)
+import FiniteMap(FiniteMap, keysFM, sizeFM)
 data FiniteMap a b     {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
-type Set a = FiniteMap a ()
-elementOf :: Ord a => a -> FiniteMap a () -> Bool
+data Set a     {-# GHC_PRAGMA MkSet (FiniteMap a ()) #-}
+cardinality :: Set a -> Int
+       {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(S)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_  _TYAPP_  _ORIG_ FiniteMap sizeFM { u0 } { () } _N_} _F_ _IF_ARGS_ 1 1 C 3 _/\_ u0 -> \ (u1 :: Set u0) -> case u1 of { _ALG_ _ORIG_ Set MkSet (u2 :: FiniteMap u0 ()) -> _APP_  _TYAPP_  _TYAPP_  _ORIG_ FiniteMap sizeFM { u0 } { () } [ u2 ]; _NO_DEFLT_ } _N_ #-}
+elementOf :: Ord a => a -> Set a -> Bool
        {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
-emptySet :: FiniteMap a ()
-       {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _!_ _ORIG_ FiniteMap EmptyFM [u0, ()] [] _N_ #-}
-intersect :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
-       {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_  _TYAPP_  _ORIG_ FiniteMap intersectFM { u0 } { () } _N_ #-}
-intersectFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
-       {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
-isEmptySet :: FiniteMap a () -> Bool
-       {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
+emptySet :: Set a
+       {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersect :: Ord a => Set a -> Set a -> Set a
+       {-# GHC_PRAGMA _A_ 1 _U_ 211 _N_ _N_ _N_ _N_ #-}
+isEmptySet :: Set a -> Bool
+       {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(S)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
 keysFM :: FiniteMap b a -> [b]
        {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
-mapSet :: Ord b => (a -> b) -> FiniteMap a () -> FiniteMap b ()
+mapSet :: Ord b => (a -> b) -> Set a -> Set b
        {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
-minusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
-       {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
-minusSet :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
-       {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_  _TYAPP_  _ORIG_ FiniteMap minusFM { u0 } { () } _N_ #-}
-mkSet :: Ord a => [a] -> FiniteMap a ()
+minusSet :: Ord a => Set a -> Set a -> Set a
+       {-# GHC_PRAGMA _A_ 1 _U_ 211 _N_ _N_ _N_ _N_ #-}
+mkSet :: Ord a => [a] -> Set a
        {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
-plusFM :: Ord a => FiniteMap a b -> FiniteMap a b -> FiniteMap a b
-       {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _N_ _N_ #-}
-setToList :: FiniteMap a () -> [a]
-       {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_  _TYAPP_  _ORIG_ FiniteMap keysFM { () } { u0 } _N_ #-}
-singletonSet :: a -> FiniteMap a ()
+setToList :: Set a -> [a]
+       {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(S)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_  _TYAPP_  _ORIG_ FiniteMap keysFM { () } { u0 } _N_} _F_ _IF_ARGS_ 1 1 C 3 _/\_ u0 -> \ (u1 :: Set u0) -> case u1 of { _ALG_ _ORIG_ Set MkSet (u2 :: FiniteMap u0 ()) -> _APP_  _TYAPP_  _TYAPP_  _ORIG_ FiniteMap keysFM { () } { u0 } [ u2 ]; _NO_DEFLT_ } _N_ #-}
+singletonSet :: a -> Set a
        {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
-union :: Ord a => FiniteMap a () -> FiniteMap a () -> FiniteMap a ()
-       {-# GHC_PRAGMA _A_ 1 _U_ 221 _N_ _N_ _F_ _IF_ARGS_ 1 0 X 1 _/\_ u0 -> _TYAPP_  _TYAPP_  _ORIG_ FiniteMap plusFM { u0 } { () } _N_ #-}
-unionManySets :: Ord a => [FiniteMap a ()] -> FiniteMap a ()
+sizeFM :: FiniteMap a b -> Int
+       {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _F_ _IF_ARGS_ 2 1 C 6 _/\_ u0 u1 -> \ (u2 :: FiniteMap u0 u1) -> case u2 of { _ALG_ _ORIG_ FiniteMap EmptyFM  -> _!_ I# [] [0#]; _ORIG_ FiniteMap Branch (u3 :: u0) (u4 :: u1) (u5 :: Int#) (u6 :: FiniteMap u0 u1) (u7 :: FiniteMap u0 u1) -> _!_ I# [] [u5]; _NO_DEFLT_ } _N_ #-}
+union :: Ord a => Set a -> Set a -> Set a
+       {-# GHC_PRAGMA _A_ 1 _U_ 211 _N_ _N_ _N_ _N_ #-}
+unionManySets :: Ord a => [Set a] -> Set a
        {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance (Eq a, Eq b) => Eq (FiniteMap a b)
+       {-# GHC_PRAGMA _M_ FiniteMap {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
+instance Eq a => Eq (Set a)
+       {-# GHC_PRAGMA _M_ Set {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}