def moved_lift
bendtorch-core@0.1.0.0 · src/tensor/from_values_contract.bend:209
import bendtorch-core@0.1.0.0/src/tensor/from_values_contract.bend as FromValuesContract
import Base
import bendtorch-core@0.1.0.0/src/shape/core.bend as Shape
import bendtorch-core@0.1.0.0/src/storage/main.bend as Storage
import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core
import bendtorch-core@0.1.0.0/src/tensor/lifecycle.bend as Lifecycle
209def moved_lift(+shape: Shape.Shape, -rest: List<&2, F32>, +cursor: Nat, -source: Storage.Storage, -target: Storage.Storage,
210 moved: {source == target : Storage.Storage}, -P: Result<&2, &1, Core.Error, Core.Tensor<shape>> -> Type,
211 next: @-valid: {Lifecycle.logical_length(source) == Shape.logical_numel(Shape.dimensions(shape)) : Nat} ->
212 P(Core.fill_values(rest, shape, Core.TTensor{source, valid}, 1n+cursor))) ->
213 @-valid: {Lifecycle.logical_length(target) == Shape.logical_numel(Shape.dimensions(shape)) : Nat} ->
214 P(Core.fill_values(rest, shape, Core.TTensor{target, valid}, 1n+cursor)):
215 %moved : (@-valid: {Lifecycle.logical_length(_) == Shape.logical_numel(Shape.dimensions(shape)) : Nat} ->
216 P(Core.fill_values(rest, shape, Core.TTensor{_, valid}, 1n+cursor)))
217 next