def write_balanced

bendtorch-core@0.1.0.0 · src/storage/array.bend:77

import bendtorch-core@0.1.0.0/src/storage/array.bend as Array
import Base
import bendtorch-core@0.1.0.0/src/storage/model.bend as Model

77def write_balanced(-T: Data, d: Nat, array: Array<T>, path: Model.Path(d), value: T,
78  valid: Model.Balanced(T, d, array)) -> Model.Balanced(T, d, write_path(T, d, array, path, value)):
79  match d array:
80    case 0n ALeaf{old}:
81      valid
82    case 0n ANode{xs, ys}:
83      valid
84    case 1n+p ALeaf{old}:
85      valid
86    case 1n+p ANode{xs, ys}:
87      Model.Step{bit, rest} = path
88      match bit:
89        case False{}:
90          (ex, ey) = valid
91          (write_balanced(T, p, xs, rest, value, ex), ey)
92        case True{}:
93          (ex, ey) = valid
94          (ex, write_balanced(T, p, ys, rest, value, ey))

Uses (8)

Used by (0)

No other definition uses this definition.