Skip to main content

DA.Set

Note: This is only supported in Daml-LF 1.11 or later. This module exports the generic set type Set k and associated functions. This module should be imported qualified, for example:
This will give access to the Set type, and the various operations as S.lookup, S.insert, S.fromList, etc. Set k internally uses the built-in order for the type k. This means that keys that contain functions are not comparable and will result in runtime errors. To prevent this, the Ord k instance is required for most set operations. It is recommended to only use Set k for key types that have an Ord k instance that is derived automatically using deriving:
This includes all built-in types that aren’t function types, such as Int, Text, Bool, (a, b) assuming a and b have default Ord instances, Optional t and [t] assuming t has a default Ord instance, Map k v assuming k and v have default Ord instances, and Set k assuming k has a default Ord instance.

Module Snapshot

Lifecycle

Stable.

Notices

Status: active Introduced in: 3.4.9 Removed in: - Warnings: 0 Deprecations: 0 Deprecated since: -

Data Types

data Set k

The type of a set. This is a wrapper over the Map type. Constructors:
  • Set
Map k ()
Instances:

Functions

empty

empty : Set k The empty set.

size

size : Set k -> Int The number of elements in the set.

toList

toList : Set k -> [k] Convert the set to a list of elements.

fromList

fromList : Ord k => [k] -> Set k Create a set from a list of elements.

toMap

toMap : Set k -> Map k () Convert a Set into a Map.

fromMap

fromMap : Map k () -> Set k Create a Set from a Map.

member

member : Ord k => k -> Set k -> Bool Is the element in the set?

notMember

notMember : Ord k => k -> Set k -> Bool Is the element not in the set? notMember k s is equivalent to not (member k s).

null

null : Set k -> Bool Is this the empty set?

insert

insert : Ord k => k -> Set k -> Set k Insert an element in a set. If the set already contains the element, this returns the set unchanged.

filter

filter : Ord k => (k -> Bool) -> Set k -> Set k Filter all elements that satisfy the predicate.

delete

delete : Ord k => k -> Set k -> Set k Delete an element from a set.

singleton

singleton : Ord k => k -> Set k Create a singleton set.

union

union : Ord k => Set k -> Set k -> Set k The union of two sets.

intersection

intersection : Ord k => Set k -> Set k -> Set k The intersection of two sets.

difference

difference : Ord k => Set k -> Set k -> Set k

isSubsetOf

isSubsetOf : Ord k => Set k -> Set k -> Bool isSubsetOf a b returns true if a is a subset of b, that is, if every element of a is in b.

isProperSubsetOf

isProperSubsetOf : Ord k => Set k -> Set k -> Bool isProperSubsetOf a b returns true if a is a proper subset of b. That is, if a is a subset of b but not equal to b.

Orphan Typeclass Instances