prelude.Set

Part of prelude.

struct Set

A set of T, persistent like MapSet.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.