[project @ 1996-01-11 14:06:51 by partain]
[ghc-hetmet.git] / ghc / lib / ghc / Set.hi
1 {-# GHC_PRAGMA INTERFACE VERSION 5 #-}
2 interface Set where
3 import FiniteMap(FiniteMap, keysFM, sizeFM)
4 data FiniteMap a b      {-# GHC_PRAGMA EmptyFM | Branch a b Int# (FiniteMap a b) (FiniteMap a b) #-}
5 data Set a      {-# GHC_PRAGMA MkSet (FiniteMap a ()) #-}
6 cardinality :: Set a -> Int
7         {-# 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_ #-}
8 elementOf :: Ord a => a -> Set a -> Bool
9         {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
10 emptySet :: Set a
11         {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
12 intersect :: Ord a => Set a -> Set a -> Set a
13         {-# GHC_PRAGMA _A_ 1 _U_ 211 _N_ _N_ _N_ _N_ #-}
14 isEmptySet :: Set a -> Bool
15         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(S)" {_A_ 1 _U_ 1 _N_ _N_ _N_ _N_} _N_ _N_ #-}
16 keysFM :: FiniteMap b a -> [b]
17         {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "S" _N_ _N_ #-}
18 mapSet :: Ord b => (a -> b) -> Set a -> Set b
19         {-# GHC_PRAGMA _A_ 1 _U_ 121 _N_ _N_ _N_ _N_ #-}
20 minusSet :: Ord a => Set a -> Set a -> Set a
21         {-# GHC_PRAGMA _A_ 1 _U_ 211 _N_ _N_ _N_ _N_ #-}
22 mkSet :: Ord a => [a] -> Set a
23         {-# GHC_PRAGMA _A_ 1 _U_ 11 _N_ _N_ _N_ _N_ #-}
24 setToList :: Set a -> [a]
25         {-# 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_ #-}
26 singletonSet :: a -> Set a
27         {-# GHC_PRAGMA _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
28 sizeFM :: FiniteMap a b -> Int
29         {-# 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_ #-}
30 union :: Ord a => Set a -> Set a -> Set a
31         {-# GHC_PRAGMA _A_ 1 _U_ 211 _N_ _N_ _N_ _N_ #-}
32 unionManySets :: Ord a => [Set a] -> Set a
33         {-# GHC_PRAGMA _A_ 1 _U_ 22 _N_ _N_ _N_ _N_ #-}
34 instance (Eq a, Eq b) => Eq (FiniteMap a b)
35         {-# GHC_PRAGMA _M_ FiniteMap {-dfun-} _A_ 2 _U_ 22 _N_ _N_ _N_ _N_ #-}
36 instance Eq a => Eq (Set a)
37         {-# GHC_PRAGMA _M_ Set {-dfun-} _A_ 1 _U_ 2 _N_ _N_ _N_ _N_ #-}
38