pure/Map

Original: OrderedMap.mo

type Map<K, V> = ()

public func new<K, V>() : Map<K, V>

public func isEmpty(map : Map<Any, Any>) : Bool

public func size(map : Map<Any, Any>) : Nat

public func containsKey<K>(
  map : Map<K, Any>,
  key : K,
  compare : (K, K) -> Order.Order
) : Bool

public func get<K, V>(
  map : Map<K, V>,
  key : K,
  compare : (K, K) -> Order.Order
) : ?V

public func add<K, V>(
  map : Map<K, V>,
  key : K,
  value : V,
  compare : (K, K) -> Order.Order
) : Map<K, V>

public func put<K, V>(
  map : Map<K, V>,
  key : K,
  value : V,
  compare : (K, K) -> Order.Order
) : (Map<K, V>, ?V)

public func delete<K, V>(
  map : Map<K, V>,
  key : K,
  compare : (K, K) -> Order.Order
) : Map<K, V>

public func take<K, V>(
  map : Map<K, V>,
  key : K,
  compare : (K, K) -> Order.Order
) : (Map<K, V>, ?V)

public func maxEntry<K, V>(map : Map<K, V>, compare : (K, K) -> Order.Order) : ?(K, V)

public func minEntry<K, V>(map : Map<K, V>, compare : (K, K) -> Order.Order) : ?(K, V)

public func entries<K, V>(map : Map<K, V>) : Iter.Iter<(K, V)>

public func reverseEntries<K, V>(map : Map<K, V>) : Iter.Iter<(K, V)>

public func keys<K>(map : Map<K, Any>) : Iter.Iter<K>

public func values<V>(map : Map<Any, V>) : Iter.Iter<V>

public func fromIter<K, V>(iter : Iter.Iter<(K, V)>, compare : (K, K) -> Order.Order) : Map<K, V>

public func map<K, V1, V2>(map : Map<K, V1>, f : (K, V1) -> V2) : Map<K, V2>

public func foldLeft<K, V, A>(
  map : Map<K, V>,
  base : A,
  combine : (A, K, V) -> A
) : A

public func foldRight<K, V, A>(
  map : Map<K, V>,
  base : A,
  combine : (K, V, A) -> A
) : A

public func all<K, V>(map : Map<K, V>, pred : (K, V) -> Bool) : Bool

public func any<K, V>(map : Map<K, V>, pred : (K, V) -> Bool) : Bool

public func filterMap<K, V1, V2>(map : Map<K, V1>, f : (K, V1) -> ?V2) : Map<K, V2>

public func assertValid<K>(map : Map<K, Any>, compare : (K, K) -> Order.Order) : ()

public func toText<K, V>(
  set : Map<K, V>,
  kf : K -> Text,
  vf : V -> Text
) : Text