~/bend-docscommunity

libs/wire/deps/int.bend checks

raw source on the hub · import 0x3d2147650fe101ae3c3e4a95333b4238/libs/wire/deps/int.bend as Int

Fixed-width integers U8, U16, U64, I32 and I64: wrapping, checked and saturating arithmetic, and text in radix 2 to 36.

1 import
import Base

Types

type U8 source · line 744 · raw

Data

type U16 source · line 913 · raw

Data

type U64 source · line 1084 · raw

Data

ponytail: Word(64n) costs about 68 us per op. When Base ships a native U64 (bendlang/bend#1027), store Base's U64 here, as U8 and U16 store Base's U32.

type I32 source · line 1256 · raw

Data

type I64 source · line 1449 · raw

Data

ponytail: Word(64n) costs about 68 us per op. When Base ships a native U64 (bendlang/bend#1027), store its bits in Base's U64, as I32 does with Base's U32.

Definitions

def Int.bits.go source · line 5 · raw

@n:Nat -> @qr:Pair(Nat, Nat) -> Word(n)

The Int.* core serves only U64 and I64. When Base ships a native U64 (bendlang/bend#1027), delete it.

def Int.bits source · line 14 · raw

@n:Nat -> @k:Nat -> Word(n)

The low n bits of k: k mod 2^n.

def Int.msb.go source · line 17 · raw

@n:Nat -> @b:Bool -> @w:Word(n) -> Bool

def Int.msb source · line 26 · raw

@n:Nat -> @w:Word(n) -> Bool

def Int.put_msb.bit source · line 29 · raw

@p:Nat -> @v:Bool -> @b:Bool -> Bool

def Int.put_msb source · line 36 · raw

@+n:Nat -> @+v:Bool -> @w:Word(n) -> Word(n)

def Int.ext source · line 45 · raw

@m:Nat -> @n:Nat -> @+fill:Bool -> @w:Word(n) -> Word(m)

def Int.ones source · line 58 · raw

@+n:Nat -> Word(n)

def Int.min source · line 61 · raw

@+n:Nat -> @s:Bool -> Word(n)

def Int.max source · line 68 · raw

@+n:Nat -> @s:Bool -> Word(n)

def Int.is_eq source · line 75 · raw

@+n:Nat -> @a:Word(n) -> @b:Word(n) -> Bool

def Int.is_zero source · line 78 · raw

@+n:Nat -> @w:Word(n) -> Bool

def Int.cmp source · line 81 · raw

@+n:Nat -> @s:Bool -> @a:Word(n) -> @b:Word(n) -> Cmp

def Int.neg source · line 89 · raw

@+n:Nat -> @w:Word(n) -> Word(n)

def Int.neg_if source · line 92 · raw

@+n:Nat -> @c:Bool -> @w:Word(n) -> Word(n)

def Int.abs source · line 99 · raw

@+n:Nat -> @+w:Word(n) -> Word(n)

def Int.udivmod.fin source · line 102 · raw

@-p:Nat -> @q:Word(p) -> @+n:Nat -> @s:Word(n) -> @b:Word(n) -> @g:Bool -> Pair(Word(1n+p), Word(n))

def Int.udivmod.shl source · line 114 · raw

@-p:Nat -> @q:Word(p) -> @+n:Nat -> @+b:Word(n) -> @ts:Pair(Bool, Word(n)) -> Pair(Word(1n+p), Word(n))

def Int.udivmod.rec source · line 123 · raw

@-p:Nat -> @a0:Bool -> @+n:Nat -> @+b:Word(n) -> @qr:Pair(Word(p), Word(n)) -> Pair(Word(1n+p), Word(n))

def Int.udivmod.go source · line 131 · raw

@m:Nat -> @a:Word(m) -> @+n:Nat -> @+b:Word(n) -> Pair(Word(m), Word(n))

def Int.sdivmod.fix source · line 138 · raw

@+n:Nat -> @+na:Bool -> @nb:Bool -> @qr:Pair(Word(n), Word(n)) -> Pair(Word(n), Word(n))

def Int.divmod.if source · line 143 · raw

@z:Bool -> @s:Bool -> @+n:Nat -> @+a:Word(n) -> @+b:Word(n) -> Pair(Word(n), Word(n))

x / 0 is 0 and x % 0 is x, as in Base's U32. MIN / -1 wraps to MIN.

def Int.divmod source · line 155 · raw

@+n:Nat -> @s:Bool -> @a:Word(n) -> @+b:Word(n) -> Pair(Word(n), Word(n))

def Int.fst source · line 158 · raw

@-n:Nat -> @p:Pair(Word(n), Word(n)) -> Word(n)

def Int.snd source · line 162 · raw

@-n:Nat -> @p:Pair(Word(n), Word(n)) -> Word(n)

def Int.div source · line 166 · raw

@+n:Nat -> @s:Bool -> @a:Word(n) -> @b:Word(n) -> Word(n)

def Int.mod source · line 169 · raw

@+n:Nat -> @s:Bool -> @a:Word(n) -> @b:Word(n) -> Word(n)

def Int.min_neg1 source · line 173 · raw

@+n:Nat -> @s:Bool -> @a:Word(n) -> @b:Word(n) -> Bool

True for signed MIN and -1, the one quotient that overflows.

def Int.div_ov source · line 181 · raw

@+n:Nat -> @s:Bool -> @a:Word(n) -> @+b:Word(n) -> Bool

def Int.add_ov.go source · line 184 · raw

@+n:Nat -> @s:Bool -> @a:Word(n) -> @b:Word(n) -> @+r:Word(n) -> Pair(Bool, Word(n))

def Int.add_ov source · line 191 · raw

@+n:Nat -> @s:Bool -> @+a:Word(n) -> @+b:Word(n) -> Pair(Bool, Word(n))

def Int.sub_ov.go source · line 194 · raw

@+n:Nat -> @s:Bool -> @+a:Word(n) -> @b:Word(n) -> @+r:Word(n) -> Pair(Bool, Word(n))

def Int.sub_ov source · line 201 · raw

@+n:Nat -> @s:Bool -> @+a:Word(n) -> @+b:Word(n) -> Pair(Bool, Word(n))

def Int.mul_ov.go source · line 204 · raw

@+n:Nat -> @+s:Bool -> @+a:Word(n) -> @+b:Word(n) -> @+r:Word(n) -> Pair(Bool, Word(n))

def Int.mul_ov source · line 209 · raw

@+n:Nat -> @s:Bool -> @+a:Word(n) -> @+b:Word(n) -> Pair(Bool, Word(n))

def Int.checked source · line 212 · raw

@-n:Nat -> @o:Pair(Bool, Word(n)) -> Maybe<&2, Word(n)>

def Int.checked_div source · line 220 · raw

@+n:Nat -> @+s:Bool -> @+a:Word(n) -> @+b:Word(n) -> Maybe<&2, Word(n)>

def Int.checked_mod source · line 223 · raw

@+n:Nat -> @+s:Bool -> @+a:Word(n) -> @+b:Word(n) -> Maybe<&2, Word(n)>

def Int.sat source · line 226 · raw

@low:Bool -> @+n:Nat -> @s:Bool -> Word(n)

def Int.saturate source · line 233 · raw

@+n:Nat -> @s:Bool -> @low:Bool -> @o:Pair(Bool, Word(n)) -> Word(n)

def Int.saturating_add source · line 241 · raw

@+n:Nat -> @+s:Bool -> @+a:Word(n) -> @b:Word(n) -> Word(n)

def Int.saturating_sub source · line 244 · raw

@+n:Nat -> @+s:Bool -> @+a:Word(n) -> @b:Word(n) -> Word(n)

def Int.saturating_mul source · line 248 · raw

@+n:Nat -> @+s:Bool -> @+a:Word(n) -> @+b:Word(n) -> Word(n)

def Int.shl source · line 252 · raw

@+n:Nat -> @k:Nat -> @w:Word(n) -> Word(n)

def Int.shr1 source · line 260 · raw

@+n:Nat -> @s:Bool -> @+w:Word(n) -> Word(n)

Signed shifts right are arithmetic: the sign bit fills in from the top.

def Int.shr source · line 267 · raw

@+n:Nat -> @+s:Bool -> @k:Nat -> @w:Word(n) -> Word(n)

def Radix.digit.if source · line 275 · raw

@lo:Bool -> @d:U32 -> Char

Digit d below 36 as '0'..'9', then 'a'..'z'.

def Radix.digit source · line 282 · raw

@+d:U32 -> Char

def Radix.in source · line 285 · raw

@+c:U32 -> @lo:U32 -> @hi:U32 -> Bool

def Radix.value.lower source · line 288 · raw

@ok:Bool -> @c:U32 -> U32

def Radix.value.upper source · line 295 · raw

@ok:Bool -> @+c:U32 -> U32

def Radix.value.if source · line 302 · raw

@ok:Bool -> @+c:U32 -> U32

def Radix.value source · line 310 · raw

@+c:U32 -> U32

The value of a digit in either case, or 36 when c is not a digit.

def Radix.clamp source · line 313 · raw

@r:U32 -> U32

def Radix.ok source · line 316 · raw

@+r:U32 -> Bool

def Radix.sign.if source · line 319 · raw

@neg:Bool -> @pos:Bool -> @c:Char -> @t:String -> Pair(Bool, String)

def Radix.sign source · line 331 · raw

@s:String -> Pair(Bool, String)

Splits one leading '-' or '+' off s: (negative, rest).

def Int.show.go source · line 340 · raw

@f:Nat -> @+n:Nat -> @+b:Word(n) -> @acc:String -> @z:Bool -> @qr:Pair(Word(n), Word(n)) -> String

z is set once the value left to print is zero; fuel n bounds the digits.

def Int.show.u source · line 360 · raw

@+n:Nat -> @+b:Word(n) -> @w:Word(n) -> String

def Int.show.if source · line 363 · raw

@neg:Bool -> @+n:Nat -> @+b:Word(n) -> @w:Word(n) -> String

def Int.show source · line 370 · raw

@+n:Nat -> @s:Bool -> @r:U32 -> @+w:Word(n) -> String

def Int.read.add source · line 377 · raw

@+n:Nat -> @d:Word(n) -> @o:Pair(Bool, Word(n)) -> Maybe<&2, Word(n)>

def Int.read.dig source · line 385 · raw

@ok:Bool -> @+n:Nat -> @+b:Word(n) -> @acc:Word(n) -> @d:U32 -> Maybe<&2, Word(n)>

def Int.read.step source · line 392 · raw

@+n:Nat -> @+b:Word(n) -> @+r:U32 -> @st:Maybe<&2, Word(n)> -> @x:U32 -> Maybe<&2, Word(n)>

def Int.read.go source · line 404 · raw

@s:String -> @+n:Nat -> @+b:Word(n) -> @+r:U32 -> @st:Maybe<&2, Word(n)> -> Maybe<&2, Word(n)>

def Int.read.u source · line 415 · raw

@+n:Nat -> @+b:Word(n) -> @+r:U32 -> @s:String -> Maybe<&2, Word(n)>

def Int.read.fit source · line 422 · raw

@bad:Bool -> @-n:Nat -> @w:Word(n) -> Maybe<&2, Word(n)>

def Int.read.pos source · line 429 · raw

@+n:Nat -> @m:Maybe<&2, Word(n)> -> Maybe<&2, Word(n)>

def Int.read.neg source · line 437 · raw

@+n:Nat -> @m:Maybe<&2, Word(n)> -> Maybe<&2, Word(n)>

def Int.read.sign source · line 446 · raw

@s:Bool -> @neg:Bool -> @+n:Nat -> @+b:Word(n) -> @+r:U32 -> @t:String -> Maybe<&2, Word(n)>

def Int.read.split source · line 466 · raw

@s:Bool -> @+n:Nat -> @+r:U32 -> @p:Pair(Bool, String) -> Maybe<&2, Word(n)>

def Int.read.if source · line 470 · raw

@ok:Bool -> @+n:Nat -> @s:Bool -> @+r:U32 -> @str:String -> Maybe<&2, Word(n)>

def Int.read source · line 477 · raw

@+n:Nat -> @s:Bool -> @+r:U32 -> @str:String -> Maybe<&2, Word(n)>

def Int.to_nat.s source · line 480 · raw

@neg:Bool -> @n:Nat -> @w:Word(n) -> Maybe<&2, Nat>

def Int.to_nat source · line 488 · raw

@+n:Nat -> @+w:Word(n) -> Maybe<&2, Nat>

Signed values below zero have no Nat.

def Int.sext source · line 491 · raw

@m:Nat -> @+n:Nat -> @+w:Word(n) -> Word(m)

def Nar.opt source · line 495 · raw

@ov:Bool -> @r:U32 -> Maybe<&2, U32>

U8 and U16 hold their value in a U32 below 2^w, and m is 2^w - 1.

def Nar.over source · line 502 · raw

@+m:U32 -> @+r:U32 -> Maybe<&2, U32>

def Nar.checked_sub source · line 505 · raw

@+a:U32 -> @+b:U32 -> Maybe<&2, U32>

def Nar.checked_div source · line 508 · raw

@a:U32 -> @+b:U32 -> Maybe<&2, U32>

def Nar.checked_mod source · line 511 · raw

@a:U32 -> @+b:U32 -> Maybe<&2, U32>

def Nar.sat_sub source · line 514 · raw

@lt:Bool -> @a:U32 -> @b:U32 -> U32

def Nar.saturating_sub source · line 521 · raw

@+a:U32 -> @+b:U32 -> U32

def Nar.show.go source · line 525 · raw

@f:Nat -> @+r:U32 -> @acc:String -> @z:Bool -> @+x:U32 -> String

Digits of x in radix r, most significant first; fuel f bounds them.

def Nar.show source · line 538 · raw

@r:U32 -> @x:U32 -> String

def Nar.read.dig source · line 541 · raw

@ok:Bool -> @+r:U32 -> @acc:U32 -> @d:U32 -> Maybe<&2, U32>

def Nar.read.step source · line 549 · raw

@+r:U32 -> @+m:U32 -> @st:Maybe<&2, U32> -> @x:U32 -> Maybe<&2, U32>

acc * r + d stays at most m exactly when acc <= (m - d) / r.

def Nar.read.go source · line 559 · raw

@s:String -> @+r:U32 -> @+m:U32 -> @st:Maybe<&2, U32> -> Maybe<&2, U32>

def Nar.read.u source · line 567 · raw

@+r:U32 -> @+m:U32 -> @s:String -> Maybe<&2, U32>

Digits in radix r, at most m; no sign.

def Nar.read.split source · line 574 · raw

@+r:U32 -> @+m:U32 -> @p:Pair(Bool, String) -> Maybe<&2, U32>

def Nar.read.if source · line 582 · raw

@ok:Bool -> @+r:U32 -> @+m:U32 -> @s:String -> Maybe<&2, U32>

def Nar.read source · line 589 · raw

@+r:U32 -> @+m:U32 -> @s:String -> Maybe<&2, U32>

def S32.MIN source · line 593 · raw

U32

I32 holds its two's-complement bits in a U32.

def S32.is_neg source · line 596 · raw

@x:U32 -> Bool

def S32.neg source · line 599 · raw

@x:U32 -> U32

def S32.neg_if source · line 602 · raw

@c:Bool -> @x:U32 -> U32

def S32.abs source · line 609 · raw

@+x:U32 -> U32

def S32.cmp source · line 612 · raw

@a:U32 -> @b:U32 -> Cmp

def S32.divmod.if source · line 616 · raw

@z:Bool -> @+a:U32 -> @+b:U32 -> Pair(U32, U32)

x / 0 is 0 and x % 0 is x, as in Base's U32. MIN / -1 wraps to MIN.

def S32.fst source · line 625 · raw

@p:Pair(U32, U32) -> U32

def S32.snd source · line 629 · raw

@p:Pair(U32, U32) -> U32

def S32.div source · line 633 · raw

@a:U32 -> @+b:U32 -> U32

def S32.mod source · line 636 · raw

@a:U32 -> @+b:U32 -> U32

def S32.min_neg1 source · line 640 · raw

@a:U32 -> @b:U32 -> Bool

True for MIN and -1, the one quotient that overflows.

def S32.div_ov source · line 643 · raw

@+a:U32 -> @+b:U32 -> Bool

def S32.add_ov.go source · line 646 · raw

@a:U32 -> @b:U32 -> @+r:U32 -> Pair(Bool, U32)

def S32.add_ov source · line 649 · raw

@+a:U32 -> @+b:U32 -> Pair(Bool, U32)

def S32.sub_ov.go source · line 652 · raw

@+a:U32 -> @b:U32 -> @+r:U32 -> Pair(Bool, U32)

def S32.sub_ov source · line 655 · raw

@+a:U32 -> @+b:U32 -> Pair(Bool, U32)

def S32.mul_ov.go source · line 658 · raw

@+a:U32 -> @+b:U32 -> @+r:U32 -> Pair(Bool, U32)

def S32.mul_ov source · line 662 · raw

@+a:U32 -> @+b:U32 -> Pair(Bool, U32)

def S32.checked source · line 665 · raw

@o:Pair(Bool, U32) -> Maybe<&2, U32>

def S32.checked_div source · line 669 · raw

@+a:U32 -> @+b:U32 -> Maybe<&2, U32>

def S32.checked_mod source · line 672 · raw

@+a:U32 -> @+b:U32 -> Maybe<&2, U32>

def S32.sat source · line 675 · raw

@low:Bool -> U32

def S32.saturate source · line 682 · raw

@low:Bool -> @o:Pair(Bool, U32) -> U32

def S32.shr.if source · line 691 · raw

@neg:Bool -> @x:U32 -> @k:Nat -> U32

Shifts right are arithmetic: the sign bit fills in from the top.

def S32.show.if source · line 698 · raw

@neg:Bool -> @r:U32 -> @x:U32 -> String

def S32.read.neg source · line 705 · raw

@m:Maybe<&2, U32> -> Maybe<&2, U32>

def S32.read.split source · line 712 · raw

@+r:U32 -> @p:Pair(Bool, String) -> Maybe<&2, U32>

def S32.read.if source · line 720 · raw

@ok:Bool -> @+r:U32 -> @s:String -> Maybe<&2, U32>

def S32.read source · line 727 · raw

@+r:U32 -> @s:String -> Maybe<&2, U32>

def S32.to_nat.if source · line 730 · raw

@neg:Bool -> @x:U32 -> Maybe<&2, Nat>

def U32.show_radix source · line 738 · raw

@r:U32 -> @x:U32 -> String

r is the radix. Show clamps it into 2..36; read rejects one outside it.

def U32.read_radix source · line 741 · raw

@+r:U32 -> @s:String -> Maybe<&2, U32>

def U8.some source · line 747 · raw

@m:Maybe<&2, U32> -> Maybe<&2, U8>

def U8.MIN source · line 754 · raw

U8

def U8.MAX source · line 757 · raw

U8

def U8.add source · line 760 · raw

@a:U8 -> @b:U8 -> U8

def U8.sub source · line 765 · raw

@a:U8 -> @b:U8 -> U8

def U8.mul source · line 770 · raw

@a:U8 -> @b:U8 -> U8

def U8.and source · line 775 · raw

@a:U8 -> @b:U8 -> U8

def U8.or source · line 780 · raw

@a:U8 -> @b:U8 -> U8

def U8.xor source · line 785 · raw

@a:U8 -> @b:U8 -> U8

def U8.div source · line 790 · raw

@a:U8 -> @b:U8 -> U8

def U8.mod source · line 795 · raw

@a:U8 -> @b:U8 -> U8

def U8.checked_add source · line 800 · raw

@a:U8 -> @b:U8 -> Maybe<&2, U8>

def U8.checked_sub source · line 805 · raw

@a:U8 -> @b:U8 -> Maybe<&2, U8>

def U8.checked_mul source · line 810 · raw

@a:U8 -> @b:U8 -> Maybe<&2, U8>

def U8.checked_div source · line 815 · raw

@a:U8 -> @b:U8 -> Maybe<&2, U8>

def U8.checked_mod source · line 820 · raw

@a:U8 -> @b:U8 -> Maybe<&2, U8>

def U8.saturating_add source · line 825 · raw

@a:U8 -> @b:U8 -> U8

def U8.saturating_sub source · line 830 · raw

@a:U8 -> @b:U8 -> U8

def U8.saturating_mul source · line 835 · raw

@a:U8 -> @b:U8 -> U8

def U8.cmp source · line 840 · raw

@a:U8 -> @b:U8 -> Cmp

def U8.is_eq source · line 845 · raw

@a:U8 -> @b:U8 -> Bool

def U8.is_lt source · line 848 · raw

@a:U8 -> @b:U8 -> Bool

def U8.is_le source · line 851 · raw

@a:U8 -> @b:U8 -> Bool

def U8.is_gt source · line 854 · raw

@a:U8 -> @b:U8 -> Bool

def U8.is_ge source · line 857 · raw

@a:U8 -> @b:U8 -> Bool

def U8.is_ne source · line 860 · raw

@a:U8 -> @b:U8 -> Bool

def U8.is_zero source · line 863 · raw

@a:U8 -> Bool

def U8.not source · line 868 · raw

@a:U8 -> U8

def U8.shl source · line 873 · raw

@a:U8 -> @k:Nat -> U8

def U8.shr source · line 878 · raw

@a:U8 -> @k:Nat -> U8

def U8.show_radix source · line 883 · raw

@r:U32 -> @a:U8 -> String

def U8.show source · line 888 · raw

@a:U8 -> String

def U8.read_radix source · line 891 · raw

@r:U32 -> @s:String -> Maybe<&2, U8>

def U8.read source · line 894 · raw

@s:String -> Maybe<&2, U8>

def U8.to_u32 source · line 897 · raw

@a:U8 -> U32

def U8.from_u32 source · line 902 · raw

@a:U32 -> U8

def U8.to_nat source · line 905 · raw

@a:U8 -> Nat

def U8.from_nat source · line 910 · raw

@k:Nat -> U8

def U16.some source · line 916 · raw

@m:Maybe<&2, U32> -> Maybe<&2, U16>

def U16.MIN source · line 923 · raw

U16

def U16.MAX source · line 926 · raw

U16

def U16.add source · line 929 · raw

@a:U16 -> @b:U16 -> U16

def U16.sub source · line 934 · raw

@a:U16 -> @b:U16 -> U16

def U16.mul source · line 939 · raw

@a:U16 -> @b:U16 -> U16

def U16.and source · line 944 · raw

@a:U16 -> @b:U16 -> U16

def U16.or source · line 949 · raw

@a:U16 -> @b:U16 -> U16

def U16.xor source · line 954 · raw

@a:U16 -> @b:U16 -> U16

def U16.div source · line 959 · raw

@a:U16 -> @b:U16 -> U16

def U16.mod source · line 964 · raw

@a:U16 -> @b:U16 -> U16

def U16.checked_add source · line 969 · raw

@a:U16 -> @b:U16 -> Maybe<&2, U16>

def U16.checked_sub source · line 974 · raw

@a:U16 -> @b:U16 -> Maybe<&2, U16>

def U16.checked_mul source · line 979 · raw

@a:U16 -> @b:U16 -> Maybe<&2, U16>

def U16.checked_div source · line 984 · raw

@a:U16 -> @b:U16 -> Maybe<&2, U16>

def U16.checked_mod source · line 989 · raw

@a:U16 -> @b:U16 -> Maybe<&2, U16>

def U16.saturating_add source · line 994 · raw

@a:U16 -> @b:U16 -> U16

def U16.saturating_sub source · line 999 · raw

@a:U16 -> @b:U16 -> U16

def U16.saturating_mul source · line 1004 · raw

@a:U16 -> @b:U16 -> U16

def U16.cmp source · line 1009 · raw

@a:U16 -> @b:U16 -> Cmp

def U16.is_eq source · line 1014 · raw

@a:U16 -> @b:U16 -> Bool

def U16.is_lt source · line 1017 · raw

@a:U16 -> @b:U16 -> Bool

def U16.is_le source · line 1020 · raw

@a:U16 -> @b:U16 -> Bool

def U16.is_gt source · line 1023 · raw

@a:U16 -> @b:U16 -> Bool

def U16.is_ge source · line 1026 · raw

@a:U16 -> @b:U16 -> Bool

def U16.is_ne source · line 1029 · raw

@a:U16 -> @b:U16 -> Bool

def U16.is_zero source · line 1032 · raw

@a:U16 -> Bool

def U16.not source · line 1037 · raw

@a:U16 -> U16

def U16.shl source · line 1042 · raw

@a:U16 -> @k:Nat -> U16

def U16.shr source · line 1047 · raw

@a:U16 -> @k:Nat -> U16

def U16.show_radix source · line 1052 · raw

@r:U32 -> @a:U16 -> String

def U16.show source · line 1057 · raw

@a:U16 -> String

def U16.read_radix source · line 1060 · raw

@r:U32 -> @s:String -> Maybe<&2, U16>

def U16.read source · line 1063 · raw

@s:String -> Maybe<&2, U16>

def U16.to_u32 source · line 1066 · raw

@a:U16 -> U32

def U16.from_u32 source · line 1071 · raw

@a:U32 -> U16

def U16.to_nat source · line 1074 · raw

@a:U16 -> Nat

def U16.from_nat source · line 1079 · raw

@k:Nat -> U16

def U64.some source · line 1087 · raw

@m:Maybe<&2, Word(64n)> -> Maybe<&2, U64>

def U64.MIN source · line 1094 · raw

U64

def U64.MAX source · line 1097 · raw

U64

def U64.add source · line 1100 · raw

@a:U64 -> @b:U64 -> U64

def U64.sub source · line 1105 · raw

@a:U64 -> @b:U64 -> U64

def U64.mul source · line 1110 · raw

@a:U64 -> @b:U64 -> U64

def U64.and source · line 1115 · raw

@a:U64 -> @b:U64 -> U64

def U64.or source · line 1120 · raw

@a:U64 -> @b:U64 -> U64

def U64.xor source · line 1125 · raw

@a:U64 -> @b:U64 -> U64

def U64.div source · line 1130 · raw

@a:U64 -> @b:U64 -> U64

def U64.mod source · line 1135 · raw

@a:U64 -> @b:U64 -> U64

def U64.checked_add source · line 1140 · raw

@a:U64 -> @b:U64 -> Maybe<&2, U64>

def U64.checked_sub source · line 1145 · raw

@a:U64 -> @b:U64 -> Maybe<&2, U64>

def U64.checked_mul source · line 1150 · raw

@a:U64 -> @b:U64 -> Maybe<&2, U64>

def U64.checked_div source · line 1155 · raw

@a:U64 -> @b:U64 -> Maybe<&2, U64>

def U64.checked_mod source · line 1160 · raw

@a:U64 -> @b:U64 -> Maybe<&2, U64>

def U64.saturating_add source · line 1165 · raw

@a:U64 -> @b:U64 -> U64

def U64.saturating_sub source · line 1170 · raw

@a:U64 -> @b:U64 -> U64

def U64.saturating_mul source · line 1175 · raw

@a:U64 -> @b:U64 -> U64

def U64.cmp source · line 1180 · raw

@a:U64 -> @b:U64 -> Cmp

def U64.is_eq source · line 1185 · raw

@a:U64 -> @b:U64 -> Bool

def U64.is_lt source · line 1188 · raw

@a:U64 -> @b:U64 -> Bool

def U64.is_le source · line 1191 · raw

@a:U64 -> @b:U64 -> Bool

def U64.is_gt source · line 1194 · raw

@a:U64 -> @b:U64 -> Bool

def U64.is_ge source · line 1197 · raw

@a:U64 -> @b:U64 -> Bool

def U64.is_ne source · line 1200 · raw

@a:U64 -> @b:U64 -> Bool

def U64.is_zero source · line 1203 · raw

@a:U64 -> Bool

def U64.not source · line 1208 · raw

@a:U64 -> U64

def U64.shl source · line 1213 · raw

@a:U64 -> @k:Nat -> U64

def U64.shr source · line 1218 · raw

@a:U64 -> @k:Nat -> U64

def U64.show_radix source · line 1223 · raw

@r:U32 -> @a:U64 -> String

def U64.show source · line 1228 · raw

@a:U64 -> String

def U64.read_radix source · line 1231 · raw

@r:U32 -> @s:String -> Maybe<&2, U64>

def U64.read source · line 1234 · raw

@s:String -> Maybe<&2, U64>

def U64.to_u32 source · line 1237 · raw

@a:U64 -> U32

def U64.from_u32 source · line 1242 · raw

@a:U32 -> U64

def U64.to_nat source · line 1248 · raw

@a:U64 -> Nat

A native build stops on a Nat past 2^48 - 1, so large U64 values have no native Nat.

def U64.from_nat source · line 1253 · raw

@k:Nat -> U64

def I32.some source · line 1259 · raw

@m:Maybe<&2, U32> -> Maybe<&2, I32>

def I32.MIN source · line 1266 · raw

I32

def I32.MAX source · line 1269 · raw

I32

def I32.add source · line 1272 · raw

@a:I32 -> @b:I32 -> I32

def I32.sub source · line 1277 · raw

@a:I32 -> @b:I32 -> I32

def I32.mul source · line 1282 · raw

@a:I32 -> @b:I32 -> I32

def I32.and source · line 1287 · raw

@a:I32 -> @b:I32 -> I32

def I32.or source · line 1292 · raw

@a:I32 -> @b:I32 -> I32

def I32.xor source · line 1297 · raw

@a:I32 -> @b:I32 -> I32

def I32.div source · line 1302 · raw

@a:I32 -> @b:I32 -> I32

def I32.mod source · line 1307 · raw

@a:I32 -> @b:I32 -> I32

def I32.checked_add source · line 1312 · raw

@a:I32 -> @b:I32 -> Maybe<&2, I32>

def I32.checked_sub source · line 1317 · raw

@a:I32 -> @b:I32 -> Maybe<&2, I32>

def I32.checked_mul source · line 1322 · raw

@a:I32 -> @b:I32 -> Maybe<&2, I32>

def I32.checked_div source · line 1327 · raw

@a:I32 -> @b:I32 -> Maybe<&2, I32>

def I32.checked_mod source · line 1332 · raw

@a:I32 -> @b:I32 -> Maybe<&2, I32>

def I32.cmp source · line 1337 · raw

@a:I32 -> @b:I32 -> Cmp

def I32.saturating_add source · line 1342 · raw

@a:I32 -> @b:I32 -> I32

def I32.saturating_sub source · line 1348 · raw

@a:I32 -> @b:I32 -> I32

def I32.saturating_mul source · line 1354 · raw

@a:I32 -> @b:I32 -> I32

def I32.is_eq source · line 1361 · raw

@a:I32 -> @b:I32 -> Bool

def I32.is_lt source · line 1364 · raw

@a:I32 -> @b:I32 -> Bool

def I32.is_le source · line 1367 · raw

@a:I32 -> @b:I32 -> Bool

def I32.is_gt source · line 1370 · raw

@a:I32 -> @b:I32 -> Bool

def I32.is_ge source · line 1373 · raw

@a:I32 -> @b:I32 -> Bool

def I32.is_ne source · line 1376 · raw

@a:I32 -> @b:I32 -> Bool

def I32.is_zero source · line 1379 · raw

@a:I32 -> Bool

def I32.not source · line 1384 · raw

@a:I32 -> I32

def I32.shl source · line 1389 · raw

@a:I32 -> @k:Nat -> I32

def I32.shr source · line 1394 · raw

@a:I32 -> @k:Nat -> I32

def I32.neg source · line 1400 · raw

@a:I32 -> I32

def I32.abs source · line 1405 · raw

@a:I32 -> I32

def I32.is_neg source · line 1410 · raw

@a:I32 -> Bool

def I32.show_radix source · line 1415 · raw

@r:U32 -> @a:I32 -> String

def I32.show source · line 1421 · raw

@a:I32 -> String

def I32.read_radix source · line 1424 · raw

@r:U32 -> @s:String -> Maybe<&2, I32>

def I32.read source · line 1427 · raw

@s:String -> Maybe<&2, I32>

def I32.to_u32 source · line 1430 · raw

@a:I32 -> U32

def I32.from_u32 source · line 1435 · raw

@a:U32 -> I32

def I32.to_nat source · line 1438 · raw

@a:I32 -> Maybe<&2, Nat>

def I32.from_nat source · line 1444 · raw

@k:Nat -> I32

def I64.some source · line 1452 · raw

@m:Maybe<&2, Word(64n)> -> Maybe<&2, I64>

def I64.MIN source · line 1459 · raw

I64

def I64.MAX source · line 1462 · raw

I64

def I64.add source · line 1465 · raw

@a:I64 -> @b:I64 -> I64

def I64.sub source · line 1470 · raw

@a:I64 -> @b:I64 -> I64

def I64.mul source · line 1475 · raw

@a:I64 -> @b:I64 -> I64

def I64.and source · line 1480 · raw

@a:I64 -> @b:I64 -> I64

def I64.or source · line 1485 · raw

@a:I64 -> @b:I64 -> I64

def I64.xor source · line 1490 · raw

@a:I64 -> @b:I64 -> I64

def I64.div source · line 1495 · raw

@a:I64 -> @b:I64 -> I64

def I64.mod source · line 1500 · raw

@a:I64 -> @b:I64 -> I64

def I64.checked_add source · line 1505 · raw

@a:I64 -> @b:I64 -> Maybe<&2, I64>

def I64.checked_sub source · line 1510 · raw

@a:I64 -> @b:I64 -> Maybe<&2, I64>

def I64.checked_mul source · line 1515 · raw

@a:I64 -> @b:I64 -> Maybe<&2, I64>

def I64.checked_div source · line 1520 · raw

@a:I64 -> @b:I64 -> Maybe<&2, I64>

def I64.checked_mod source · line 1525 · raw

@a:I64 -> @b:I64 -> Maybe<&2, I64>

def I64.saturating_add source · line 1530 · raw

@a:I64 -> @b:I64 -> I64

def I64.saturating_sub source · line 1535 · raw

@a:I64 -> @b:I64 -> I64

def I64.saturating_mul source · line 1540 · raw

@a:I64 -> @b:I64 -> I64

def I64.cmp source · line 1545 · raw

@a:I64 -> @b:I64 -> Cmp

def I64.is_eq source · line 1550 · raw

@a:I64 -> @b:I64 -> Bool

def I64.is_lt source · line 1553 · raw

@a:I64 -> @b:I64 -> Bool

def I64.is_le source · line 1556 · raw

@a:I64 -> @b:I64 -> Bool

def I64.is_gt source · line 1559 · raw

@a:I64 -> @b:I64 -> Bool

def I64.is_ge source · line 1562 · raw

@a:I64 -> @b:I64 -> Bool

def I64.is_ne source · line 1565 · raw

@a:I64 -> @b:I64 -> Bool

def I64.is_zero source · line 1568 · raw

@a:I64 -> Bool

def I64.not source · line 1573 · raw

@a:I64 -> I64

def I64.shl source · line 1578 · raw

@a:I64 -> @k:Nat -> I64

def I64.shr source · line 1583 · raw

@a:I64 -> @k:Nat -> I64

def I64.neg source · line 1588 · raw

@a:I64 -> I64

def I64.abs source · line 1593 · raw

@a:I64 -> I64

def I64.is_neg source · line 1598 · raw

@a:I64 -> Bool

def I64.show_radix source · line 1603 · raw

@r:U32 -> @a:I64 -> String

def I64.show source · line 1608 · raw

@a:I64 -> String

def I64.read_radix source · line 1611 · raw

@r:U32 -> @s:String -> Maybe<&2, I64>

def I64.read source · line 1614 · raw

@s:String -> Maybe<&2, I64>

def I64.to_u32 source · line 1617 · raw

@a:I64 -> U32

def I64.from_u32 source · line 1622 · raw

@a:U32 -> I64

def I64.to_nat source · line 1627 · raw

@a:I64 -> Maybe<&2, Nat>

def I64.from_nat source · line 1632 · raw

@k:Nat -> I64