def write_path
bendtorch-core@0.1.0.0 · src/storage/array.bend:61
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
61def write_path(-T: Data, d: Nat, array: Array<T>, path: Model.Path(d), value: T) -> Array<T>:
62 match d array:
63 case 0n ALeaf{old}:
64 ALeaf{value}
65 case 0n ANode{xs, ys}:
66 ANode{xs, ys}
67 case 1n+p ALeaf{old}:
68 ALeaf{old}
69 case 1n+p ANode{xs, ys}:
70 Model.Step{bit, rest} = path
71 match bit:
72 case False{}:
73 ANode{write_path(T, p, xs, rest, value), ys}
74 case True{}:
75 ANode{xs, write_path(T, p, ys, rest, value)}