# Data.SortedSet

data SortedSet : Type -> Type
  SetWrapper : SortedMap k () -> SortedSet k
contains : k -> SortedSet k -> Bool
delete : k -> SortedSet k -> SortedSet k
difference : (x : SortedSet k) -> (y : SortedSet k) -> SortedSet k

  Set difference. Delete all elments in y from x

empty : Ord k => SortedSet k
fromList : Ord k => List k -> SortedSet k
insert : k -> SortedSet k -> SortedSet k
intersection : (x : SortedSet k) -> (y : SortedSet k) -> SortedSet k

  Set intersection. Implemented as the difference of the union and the symetric difference.

keySet : SortedMap k v -> SortedSet k
symDifference : (x : SortedSet k) -> (y : SortedSet k) -> SortedSet k

  Set symmetric difference. Uses the union of the differences.

toList : SortedSet k -> List k
union : (x : SortedSet k) -> (y : SortedSet k) -> SortedSet k

  Set union. Inserts all elements of x into y