module ClassyPrelude.Set
( Set
) where
import qualified Prelude
import Prelude ((.), Char)
import ClassyPrelude.Classes
import Data.Set (Set)
import qualified Data.Set as Set
instance (Prelude.Ord a, Prelude.Ord b) => CanMapFunc (Set a) (Set b) a b where
mapFunc = Set.map
instance CanLength (Set x) Prelude.Int where
length = Set.size
instance CanSingleton (Set x) x where
singleton = Set.singleton
instance CanNull (Set x) where
null = Set.null
instance Prelude.Ord x => CanPack (Set x) x where
pack = Set.fromList
unpack = Set.toList
instance (Prelude.Ord x, Set x ~ s, x ~ x') => CanInsert (x' -> s -> Set x) where
insert = Set.insert
instance Prelude.Ord x => CanMember (Set x) x where
member = Set.member
instance CanFoldFunc (Set a) a accum where
foldFunc = Set.foldl'