def new_refused

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

import bendtorch-core@0.1.0.0/src/storage/api.bend as Api
import Base
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

726def new_refused(+n: Nat, -value: F32, allowed: Bool, no: {False{} == allowed : Bool},
727  +positive: {Nat.is_lt(0n, n) == True{} : Bool}) ->
728  {Laws.refused.of(Storage.new_checked(n, value, allowed)) == Some{Storage.TooLarge{}} : Maybe<&2, Storage.Error>}:
729  match n:
730    case 0n:
731      Empty.absurd({Laws.refused.of(Storage.new_checked(0n, value, allowed)) == Some{Storage.TooLarge{}} : Maybe<&2, Storage.Error>},
732        Arith.clash(positive))
733    case 1n+p:
734      match allowed:
735        case False{}:
736          {==}
737        case True{}:
738          Empty.absurd({Laws.refused.of(Storage.new_checked(1n+p, value, True{})) == Some{Storage.TooLarge{}} : Maybe<&2, Storage.Error>},
739            Arith.clash(no))

Uses (10)

Used by (1)