Operators
See Concepts: Operators for the full overview.
Bind
bound = hv.bind(a, b)
released = hv.release(bound, b) # this will recover `a`
hv.equal(a, b) # hash equality
Release
Extracts one component from a binding:
bound = hv.bind(role, filler)
recovered = hv.release(bound, role) # Dart; ≈ filler at the bit level
Expand (extend a Knot)
Extends an existing Knot with additional operands without
re-binding from scratch. k.expand(c) on k = bind(a, b) returns a
new Knot equal to bind(a, b, c) — a Knot is an immutable value, so
k itself never changes.
k = hv.bind(a, b)
k2 = k.expand(c) # k2 is equivalent to hv.bind(a, b, c); k unchanged
Bundle
p = hv.bundle(hv.Seed128(10, 1), a, b, c)