implementation module StdDynSet import StdEnv import StdDynamic class Set a | TC, ==, toString a :: Set = Set [Dynamic] instance zero Set where zero = Set [] instance toString Set where toString (Set a) = abort "toString not implemented" instance == Set where (==) (Set []) (Set []) = True (==) (Set []) _ = False (==) _ (Set []) = False toSet :: a -> Set | Set a toSet a = Set [dynamic a] nrOfElts :: Set -> Int nrOfElts (Set a) = length a isEmptySet :: Set -> Bool isEmptySet (Set []) = True isEmptySet _ = False memberOfSet :: a Set -> Bool | Set a memberOfSet _ (Set []) = False memberOfSet x (Set [y:xs]) | isEqual x y = True | otherwise = memberOfSet x xs isSubset :: Set Set -> Bool isSubset a b = abort "isSubset nog niet geimplementeerd.\n" isStrictSubset :: Set Set -> Bool isStrictSubset a b = abort "isStrictSubset nog niet geimplementeerd.\n" union :: Set Set -> Set union a b = abort "union nog niet geimplementeerd.\n" intersection :: Set Set -> Set intersection a b = abort "intersection nog niet geimplementeerd.\n" without :: Set Set -> Set without a b = abort "without nog niet geimplementeerd.\n" Start :: Set Start = toSet 1