def get_checked_miss
bendtorch-core@0.1.0.0 · src/storage/api.bend:44
import bendtorch-core@0.1.0.0/src/storage/api.bend as Api
import Base
import bendtorch-core@0.1.0.0/src/storage/model.bend as Model
import bendtorch-core@0.1.0.0/src/storage/main.bend as Storage
import bendtorch-core@0.1.0.0/src/storage/LAWS.bend as Laws
import bendtorch-core@0.1.0.0/src/storage/arith.bend as Arith
44def get_checked_miss(+d: Nat, +n: Nat, -array: Array<F32>, +i: U32, allowed: Bool,
45 -decision: {allowed == Nat.is_lt(U32.to_nat(i), n) : Bool},
46 -balanced: Model.Balanced(F32, d, array), -valid: {Storage.bounds(d, n) == True{} : Bool},
47 no: {False{} == allowed : Bool}) ->
48 {Laws.outcome(Result<&2, &2, Storage.Error, F32>, Storage.get_checked(d, n, array, i, allowed, decision, balanced, valid)) ==
49 Fail{Storage.OutOfBounds{}} : Result<&2, &2, Storage.Error, F32>}:
50 match allowed:
51 case False{}:
52 {==}
53 case True{}:
54 Empty.absurd({Laws.outcome(Result<&2, &2, Storage.Error, F32>, Storage.get_checked(d, n, array, i, True{}, decision, balanced, valid)) ==
55 Fail{Storage.OutOfBounds{}} : Result<&2, &2, Storage.Error, F32>}, Arith.clash(no))