Set

Original: OrderedSet.mo

type Set<T> = { var pure : Pure.Set<T> }

public func toPure<T>(set : Set<T>) : Pure.Set<T>

public func fromPure<T>(set : Pure.Set<T>) : Set<T>

public func clone<T>(set : Set<T>) : Set<T>

public func new<T>() : Set<T>

public func singleton<T>() : Set<T>

public func isEmpty(set : Set<Any>) : Bool

public func size(set : Set<Any>) : Nat

public func contains<T>(
  set : Set<T>,
  item : T,
  compare : (T, T) -> Order.Order
) : Bool

public func equal<T>(
  set1 : Set<T>,
  set2 : Set<T>,
  equal : (T, T) -> Bool
) : Bool

public func add<T>(
  set : Set<T>,
  item : T,
  compare : (T, T) -> Order.Order
) : ()

public func delete<T>(
  set : Set<T>,
  item : T,
  compare : (T, T) -> Order.Order
) : Bool

public func max<T>(set : Set<T>, compare : (T, T) -> Order.Order) : ?T

public func min<T>(set : Set<T>, compare : (T, T) -> Order.Order) : ?T

public func values<T>(set : Set<T>) : Iter.Iter<T>

public func reverseValues<T>(set : Set<T>) : Iter.Iter<T>

public func fromIter<T>(iter : Iter.Iter<T>, compare : (T, T) -> Order.Order) : Set<T>

public func isSubset<T>(set1 : Set<T>, set2 : Set<T>) : Bool

public func union<T>(set1 : Set<T>, set2 : Set<T>) : Set<T>

public func intersect<T>(set1 : Set<T>, set2 : Set<T>) : Set<T>

public func diff<T>(set1 : Set<T>, set2 : Set<T>) : Set<T>

public func filter<T>(set : Set<T>, f : T -> Bool) : Set<T>

public func map<T1, T2>(set : Set<T1>, f : T1 -> T2) : Set<T2>

public func filterMap<T1, T2>(set : Set<T1>, f : T1 -> ?T2) : Set<T2>

public func foldLeft<T, A>(
  set : Set<T>,
  base : A,
  combine : (A, T) -> A
) : A

public func foldRight<T, A>(
  set : Set<T>,
  base : A,
  combine : (A, T) -> A
) : A

public func flatten<T>(set : Iter.Iter<Set<T>>) : Set<T>

public func all<T>(set : Set<T>, pred : T -> Bool) : Bool

public func any<T>(set : Set<T>, pred : T -> Bool) : Bool

public func assertValid<T>(set : Set<T>, compare : (T, T) -> Order.Order) : ()

public func toText<T>(set : Set<T>, f : T -> Text) : Text