DotFun

@Serializable
class DotFun<V>(val values: Map<Dot, V> = emptyMap()) : DotStore<DotFun<V>>

A DotStore mapping each Dot to a value V. Because a dot is minted once and never reused, a dot in both stores carries the same value, so the causal join needs no value-level conflict resolution — surviving dots simply keep their value. As Causal<DotFun<V>> this is a Multi-Value Register: concurrent writes each keep their (dot, value), surfacing the conflict rather than hiding it.

Constructors

Link copied to clipboard
constructor(values: Map<Dot, V> = emptyMap())

Properties

Link copied to clipboard
open override val dots: Set<Dot>

Every dot currently live in this store.

Link copied to clipboard
open override val empty: DotFun<V>

The empty (bottom) store of this shape — no dots.

Link copied to clipboard
open val isBottom: Boolean

True when the store holds no dots.

Link copied to clipboard
val values: Map<Dot, V>

Functions

Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
open override fun join(other: DotFun<V>, context: DotContext, otherContext: DotContext): DotFun<V>

The causal join with other. A dot is kept when it is live in both stores, or live in one and not yet witnessed by the other side's context; it is dropped only when one side still has it while the other has it in otherContext but not in its store — the signature of a deliberate remove. context is this store's surrounding causal history; otherContext is the other's.

Link copied to clipboard
open override fun toString(): String