def new_fits

bendtorch-core@0.1.0.0 · src/storage/api.bend:794

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

794def new_fits(+n: Nat, -value: F32, allowed: Bool, yes: {True{} == allowed : Bool},
795  +limit: {Nat.is_le(n, Model.capacity(20n)) == True{} : Bool}) ->
796  {Laws.refused.of(Storage.new_checked(n, value, allowed)) == None{} : Maybe<&2, Storage.Error>}:
797  match n:
798    case 0n:
799      {==}
800    case 1n+p:
801      match allowed:
802        case True{}:
803          meta_fits(1n+p, value, Storage.depth_seek(20n, 1n+p, 0n, 1n, Nat.is_le(1n+p, 1n)), seek(1n+p, limit, {==}))
804        case False{}:
805          Empty.absurd({Laws.refused.of(Storage.new_checked(1n+p, value, False{})) == None{} : Maybe<&2, Storage.Error>}, Arith.clash_true(yes))

Uses (14)

Used by (1)