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)}

Uses (5)

Used by (28)