prelude.Set
Part of prelude.
struct Set
A set of T, persistent like Map — Set.insert returns a new set. Members need Eq.
let Set.new (): Set[T]
An empty set.
let Set.insert (s: Set[T]) (x: T): Set[T]
A new set with x added. Adding a member twice changes nothing.
let Set.contains (s: Set[T]) (x: T): Bool
Whether x is a member.
let Set.remove (s: Set[T]) (x: T): Set[T]
A new set without x.
let Set.len (s: Set[T]): Int
How many members.
let Set.to_array (s: Set[T]): Array[T]
Every member, in no particular order.
let Set.union (a: Set[T]) (b: Set[T]): Set[T]
Everything in either set.
let Set.intersection (a: Set[T]) (b: Set[T]): Set[T]
Only what is in both.
let Set.difference (a: Set[T]) (b: Set[T]): Set[T]
What is in a and not in b.
let Set.from_array (arr: Array[T]): Set[T]
A set of the array's elements, discarding duplicates.