nutcracker.data
Type members
Classlikes
Similar to IncSet but specialized for domain references. Failed domains might be removed from this set automatically without emitting any delta.
Represents a refinable value that in addition can be artificially revoked ("closed").
Represents a refinable value that in addition can be artificially revoked ("closed").
- Companion:
- object
Decreasing set.
A wrapper for Set
where a monotonic update is one that removes
elements, e.g. by intersection or set difference. This is dual to
the usual view of the poset of sets: here, smaller sets (by subset
relation) are considered greater (i.e. are higher in the lattice),
set intersection is the join and set union is the meet.
Decreasing set.
A wrapper for Set
where a monotonic update is one that removes
elements, e.g. by intersection or set difference. This is dual to
the usual view of the poset of sets: here, smaller sets (by subset
relation) are considered greater (i.e. are higher in the lattice),
set intersection is the join and set union is the meet.
- Companion:
- object
Marker wrapper meaning that any two distinct values of type Discrete[A]
should be treated as incomparable. As a consequence, a value of type
Discrete[A]
cannot be refined to obtain a different value. Therefore,
refinement is disallowed altogether by setting the Update
type to
an uninhabited type.
Marker wrapper meaning that any two distinct values of type Discrete[A]
should be treated as incomparable. As a consequence, a value of type
Discrete[A]
cannot be refined to obtain a different value. Therefore,
refinement is disallowed altogether by setting the Update
type to
an uninhabited type.
- See also:
- Companion:
- object
Increasing set.
A wrapper for Set
where a monotonic update is one that adds
elements, e.g. by union with another set.
Increasing set.
A wrapper for Set
where a monotonic update is one that adds
elements, e.g. by union with another set.
- Companion:
- object
For any type A
, Promise[A]
is a bounded lattice on the set A ⊔ {0, 1}
(where "⊔" means "disjoint union") with 0
being the least element, 1
being the greatest element, and all elements of A
forming an antichain
(i.e. mutually incomparable). 0
represents an empty (incomplete) promise,
the elements of A
represent a completed promise, and 1
represents a
conflict (a promise completed multiple times with different values).
For any type A
, Promise[A]
is a bounded lattice on the set A ⊔ {0, 1}
(where "⊔" means "disjoint union") with 0
being the least element, 1
being the greatest element, and all elements of A
forming an antichain
(i.e. mutually incomparable). 0
represents an empty (incomplete) promise,
the elements of A
represent a completed promise, and 1
represents a
conflict (a promise completed multiple times with different values).
- See also:
- Companion:
- object
Like Promise, but it is a conflict to complete a PromiseOnce twice, regardless of the value it is completed with.
Like Promise, but it is a conflict to complete a PromiseOnce twice, regardless of the value it is completed with.
- See also:
- Companion:
- object
Convenience methods to work with promises.
Convenience methods to work with promises.
Product of two cells.
Product of two cells.
The flow is unidirectional, from factors to the product, but not the other way around.
Queries have to specify a superset of either both factors, or the result. A query that specifies just one factor doesn't uniquely determine the types of the other columns, and therefore is not considered type-safe.
- Companion:
- object
Convenience methods to work with a list as a prepend-only log. Monotonic update is prepending an element to the list. A diff is a list of appended elements.
Convenience methods to work with a list as a prepend-only log. Monotonic update is prepending an element to the list. A diff is a list of appended elements.
Note: updates to log are neither idempotent nor commutative, as is required by Dom.update, so don't base any business logic on it.