ampersand-3.0.0: src/lib/DatabaseDesign/Ampersand/Basics/Collection.hs
{-# OPTIONS_GHC -Wall #-}
module DatabaseDesign.Ampersand.Basics.Collection
( Collection ( eleM
, uni
, isc
,(>-)
,empty
,elems)
)where
----------------------------------------------
---- Collection of type a --------------------
----------------------------------------------
infixl 5 >-
class Collection a where -- TODO Vervangen door efficient algorithme: Data.Set
eleM :: Eq b => b -> a b -> Bool
uni, isc :: Eq b => a b -> a b -> a b
(>-) :: Eq b => a b -> a b -> a b
empty :: Eq b => a b
elems :: Eq b => a b -> [b]
instance Collection [] where
eleM = elem
xs `uni` ys = xs++(ys>-xs)
xs `isc` ys = [y | y<-ys, y `elem` xs]
xs >- ys = [x | x<-xs, x `notElem` ys]
empty = []
elems = id