immutable/Set

Original: OrderedSet.mo

type Set<T> = ()

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

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

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

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

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

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

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

public func max<T>(set : Set<T>) : ?T

public func min<T>(set : Set<T>) : ?T

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

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 forEach<T>(set : Set<T>, f : T -> ())

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

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

public func filterMap<T1, T2>(
  set : Set<T1>,
  compare : (T2, T2) -> Order.Order,
  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 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>) : ()

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

public func compare<T>(
  set1 : Set<T>,
  set2 : Set<T>,
  compare : (T, T) -> Order.Order
) : Order.Order