~/bend-docscommunity

int.bend checks

raw source on the hub · import bend-kit-int@0.2.0.0/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 735 · raw

Data

type U16 source · line 904 · raw

Data

type U64 source · line 1075 · 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 1247 · raw

Data

type I64 source · line 1440 · 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 110 · 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 116 · 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 121 · raw

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

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

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

def Int.divmod.if source · line 135 · 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 148 · raw

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

def Int.fst source · line 152 · raw

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

def Int.snd source · line 156 · raw

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

def Int.div source · line 160 · raw

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

def Int.mod source · line 163 · raw

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

def Int.min_neg1 source · line 167 · 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 175 · raw

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

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

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

def Int.add_ov source · line 186 · raw

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

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

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

def Int.sub_ov source · line 197 · raw

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

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

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

def Int.mul_ov source · line 206 · raw

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

def Int.checked source · line 209 · raw

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

def Int.checked_div source · line 217 · raw

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

def Int.checked_mod source · line 221 · raw

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

def Int.sat source · line 225 · raw

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

def Int.saturate source · line 232 · raw

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

def Int.saturating_add source · line 240 · raw

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

def Int.saturating_sub source · line 243 · raw

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

def Int.saturating_mul source · line 247 · 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 356 · raw

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

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

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

def Int.show source · line 366 · raw

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

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

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

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

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

def Int.read.step source · line 389 · 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 398 · 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 406 · raw

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

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

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

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

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

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

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

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

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

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

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

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

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

def Int.read source · line 466 · raw

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

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

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

def Int.to_nat source · line 477 · raw

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

Signed values below zero have no Nat.

def Int.sext source · line 480 · raw

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

def Nar.opt source · line 484 · 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 491 · raw

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

def Nar.checked_sub source · line 494 · raw

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

def Nar.checked_div source · line 497 · raw

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

def Nar.checked_mod source · line 500 · raw

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

def Nar.sat_sub source · line 503 · raw

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

def Nar.saturating_sub source · line 510 · raw

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

def Nar.show.go source · line 514 · 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 527 · raw

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

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

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

def Nar.read.step source · line 538 · 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 549 · raw

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

def Nar.read.u source · line 558 · 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 565 · raw

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

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

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

def Nar.read source · line 580 · raw

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

def S32.MIN source · line 584 · raw

U32

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

def S32.is_neg source · line 587 · raw

@x:U32 -> Bool

def S32.neg source · line 590 · raw

@x:U32 -> U32

def S32.neg_if source · line 593 · raw

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

def S32.abs source · line 600 · raw

@+x:U32 -> U32

def S32.cmp source · line 603 · raw

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

def S32.divmod.if source · line 607 · 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 616 · raw

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

def S32.snd source · line 620 · raw

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

def S32.div source · line 624 · raw

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

def S32.mod source · line 627 · raw

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

def S32.min_neg1 source · line 631 · raw

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

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

def S32.div_ov source · line 634 · raw

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

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

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

def S32.add_ov source · line 640 · raw

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

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

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

def S32.sub_ov source · line 646 · raw

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

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

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

def S32.mul_ov source · line 653 · raw

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

def S32.checked source · line 656 · raw

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

def S32.checked_div source · line 660 · raw

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

def S32.checked_mod source · line 663 · raw

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

def S32.sat source · line 666 · raw

@low:Bool -> U32

def S32.saturate source · line 673 · raw

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

def S32.shr.if source · line 682 · 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 689 · raw

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

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

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

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

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

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

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

def S32.read source · line 718 · raw

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

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

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

def U32.show_radix source · line 729 · 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 732 · raw

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

def U8.some source · line 738 · raw

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

def U8.MIN source · line 745 · raw

U8

def U8.MAX source · line 748 · raw

U8

def U8.add source · line 751 · raw

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

def U8.sub source · line 756 · raw

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

def U8.mul source · line 761 · raw

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

def U8.and source · line 766 · raw

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

def U8.or source · line 771 · raw

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

def U8.xor source · line 776 · raw

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

def U8.div source · line 781 · raw

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

def U8.mod source · line 786 · raw

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

def U8.checked_add source · line 791 · raw

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

def U8.checked_sub source · line 796 · raw

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

def U8.checked_mul source · line 801 · raw

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

def U8.checked_div source · line 806 · raw

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

def U8.checked_mod source · line 811 · raw

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

def U8.saturating_add source · line 816 · raw

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

def U8.saturating_sub source · line 821 · raw

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

def U8.saturating_mul source · line 826 · raw

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

def U8.cmp source · line 831 · raw

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

def U8.is_eq source · line 836 · raw

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

def U8.is_lt source · line 839 · raw

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

def U8.is_le source · line 842 · raw

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

def U8.is_gt source · line 845 · raw

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

def U8.is_ge source · line 848 · raw

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

def U8.is_ne source · line 851 · raw

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

def U8.is_zero source · line 854 · raw

@a:U8 -> Bool

def U8.not source · line 859 · raw

@a:U8 -> U8

def U8.shl source · line 864 · raw

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

def U8.shr source · line 869 · raw

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

def U8.show_radix source · line 874 · raw

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

def U8.show source · line 879 · raw

@a:U8 -> String

def U8.read_radix source · line 882 · raw

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

def U8.read source · line 885 · raw

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

def U8.to_u32 source · line 888 · raw

@a:U8 -> U32

def U8.from_u32 source · line 893 · raw

@a:U32 -> U8

def U8.to_nat source · line 896 · raw

@a:U8 -> Nat

def U8.from_nat source · line 901 · raw

@k:Nat -> U8

def U16.some source · line 907 · raw

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

def U16.MIN source · line 914 · raw

U16

def U16.MAX source · line 917 · raw

U16

def U16.add source · line 920 · raw

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

def U16.sub source · line 925 · raw

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

def U16.mul source · line 930 · raw

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

def U16.and source · line 935 · raw

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

def U16.or source · line 940 · raw

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

def U16.xor source · line 945 · raw

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

def U16.div source · line 950 · raw

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

def U16.mod source · line 955 · raw

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

def U16.checked_add source · line 960 · raw

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

def U16.checked_sub source · line 965 · raw

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

def U16.checked_mul source · line 970 · raw

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

def U16.checked_div source · line 975 · raw

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

def U16.checked_mod source · line 980 · raw

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

def U16.saturating_add source · line 985 · raw

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

def U16.saturating_sub source · line 990 · raw

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

def U16.saturating_mul source · line 995 · raw

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

def U16.cmp source · line 1000 · raw

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

def U16.is_eq source · line 1005 · raw

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

def U16.is_lt source · line 1008 · raw

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

def U16.is_le source · line 1011 · raw

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

def U16.is_gt source · line 1014 · raw

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

def U16.is_ge source · line 1017 · raw

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

def U16.is_ne source · line 1020 · raw

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

def U16.is_zero source · line 1023 · raw

@a:U16 -> Bool

def U16.not source · line 1028 · raw

@a:U16 -> U16

def U16.shl source · line 1033 · raw

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

def U16.shr source · line 1038 · raw

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

def U16.show_radix source · line 1043 · raw

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

def U16.show source · line 1048 · raw

@a:U16 -> String

def U16.read_radix source · line 1051 · raw

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

def U16.read source · line 1054 · raw

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

def U16.to_u32 source · line 1057 · raw

@a:U16 -> U32

def U16.from_u32 source · line 1062 · raw

@a:U32 -> U16

def U16.to_nat source · line 1065 · raw

@a:U16 -> Nat

def U16.from_nat source · line 1070 · raw

@k:Nat -> U16

def U64.some source · line 1078 · raw

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

def U64.MIN source · line 1085 · raw

U64

def U64.MAX source · line 1088 · raw

U64

def U64.add source · line 1091 · raw

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

def U64.sub source · line 1096 · raw

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

def U64.mul source · line 1101 · raw

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

def U64.and source · line 1106 · raw

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

def U64.or source · line 1111 · raw

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

def U64.xor source · line 1116 · raw

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

def U64.div source · line 1121 · raw

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

def U64.mod source · line 1126 · raw

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

def U64.checked_add source · line 1131 · raw

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

def U64.checked_sub source · line 1136 · raw

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

def U64.checked_mul source · line 1141 · raw

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

def U64.checked_div source · line 1146 · raw

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

def U64.checked_mod source · line 1151 · raw

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

def U64.saturating_add source · line 1156 · raw

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

def U64.saturating_sub source · line 1161 · raw

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

def U64.saturating_mul source · line 1166 · raw

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

def U64.cmp source · line 1171 · raw

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

def U64.is_eq source · line 1176 · raw

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

def U64.is_lt source · line 1179 · raw

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

def U64.is_le source · line 1182 · raw

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

def U64.is_gt source · line 1185 · raw

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

def U64.is_ge source · line 1188 · raw

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

def U64.is_ne source · line 1191 · raw

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

def U64.is_zero source · line 1194 · raw

@a:U64 -> Bool

def U64.not source · line 1199 · raw

@a:U64 -> U64

def U64.shl source · line 1204 · raw

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

def U64.shr source · line 1209 · raw

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

def U64.show_radix source · line 1214 · raw

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

def U64.show source · line 1219 · raw

@a:U64 -> String

def U64.read_radix source · line 1222 · raw

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

def U64.read source · line 1225 · raw

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

def U64.to_u32 source · line 1228 · raw

@a:U64 -> U32

def U64.from_u32 source · line 1233 · raw

@a:U32 -> U64

def U64.to_nat source · line 1239 · 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 1244 · raw

@k:Nat -> U64

def I32.some source · line 1250 · raw

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

def I32.MIN source · line 1257 · raw

I32

def I32.MAX source · line 1260 · raw

I32

def I32.add source · line 1263 · raw

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

def I32.sub source · line 1268 · raw

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

def I32.mul source · line 1273 · raw

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

def I32.and source · line 1278 · raw

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

def I32.or source · line 1283 · raw

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

def I32.xor source · line 1288 · raw

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

def I32.div source · line 1293 · raw

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

def I32.mod source · line 1298 · raw

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

def I32.checked_add source · line 1303 · raw

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

def I32.checked_sub source · line 1308 · raw

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

def I32.checked_mul source · line 1313 · raw

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

def I32.checked_div source · line 1318 · raw

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

def I32.checked_mod source · line 1323 · raw

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

def I32.cmp source · line 1328 · raw

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

def I32.saturating_add source · line 1333 · raw

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

def I32.saturating_sub source · line 1339 · raw

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

def I32.saturating_mul source · line 1345 · raw

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

def I32.is_eq source · line 1352 · raw

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

def I32.is_lt source · line 1355 · raw

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

def I32.is_le source · line 1358 · raw

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

def I32.is_gt source · line 1361 · raw

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

def I32.is_ge source · line 1364 · raw

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

def I32.is_ne source · line 1367 · raw

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

def I32.is_zero source · line 1370 · raw

@a:I32 -> Bool

def I32.not source · line 1375 · raw

@a:I32 -> I32

def I32.shl source · line 1380 · raw

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

def I32.shr source · line 1385 · raw

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

def I32.neg source · line 1391 · raw

@a:I32 -> I32

def I32.abs source · line 1396 · raw

@a:I32 -> I32

def I32.is_neg source · line 1401 · raw

@a:I32 -> Bool

def I32.show_radix source · line 1406 · raw

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

def I32.show source · line 1412 · raw

@a:I32 -> String

def I32.read_radix source · line 1415 · raw

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

def I32.read source · line 1418 · raw

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

def I32.to_u32 source · line 1421 · raw

@a:I32 -> U32

def I32.from_u32 source · line 1426 · raw

@a:U32 -> I32

def I32.to_nat source · line 1429 · raw

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

def I32.from_nat source · line 1435 · raw

@k:Nat -> I32

def I64.some source · line 1443 · raw

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

def I64.MIN source · line 1450 · raw

I64

def I64.MAX source · line 1453 · raw

I64

def I64.add source · line 1456 · raw

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

def I64.sub source · line 1461 · raw

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

def I64.mul source · line 1466 · raw

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

def I64.and source · line 1471 · raw

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

def I64.or source · line 1476 · raw

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

def I64.xor source · line 1481 · raw

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

def I64.div source · line 1486 · raw

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

def I64.mod source · line 1491 · raw

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

def I64.checked_add source · line 1496 · raw

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

def I64.checked_sub source · line 1501 · raw

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

def I64.checked_mul source · line 1506 · raw

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

def I64.checked_div source · line 1511 · raw

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

def I64.checked_mod source · line 1516 · raw

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

def I64.saturating_add source · line 1521 · raw

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

def I64.saturating_sub source · line 1526 · raw

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

def I64.saturating_mul source · line 1531 · raw

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

def I64.cmp source · line 1536 · raw

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

def I64.is_eq source · line 1541 · raw

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

def I64.is_lt source · line 1544 · raw

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

def I64.is_le source · line 1547 · raw

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

def I64.is_gt source · line 1550 · raw

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

def I64.is_ge source · line 1553 · raw

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

def I64.is_ne source · line 1556 · raw

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

def I64.is_zero source · line 1559 · raw

@a:I64 -> Bool

def I64.not source · line 1564 · raw

@a:I64 -> I64

def I64.shl source · line 1569 · raw

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

def I64.shr source · line 1574 · raw

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

def I64.neg source · line 1579 · raw

@a:I64 -> I64

def I64.abs source · line 1584 · raw

@a:I64 -> I64

def I64.is_neg source · line 1589 · raw

@a:I64 -> Bool

def I64.show_radix source · line 1594 · raw

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

def I64.show source · line 1599 · raw

@a:I64 -> String

def I64.read_radix source · line 1602 · raw

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

def I64.read source · line 1605 · raw

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

def I64.to_u32 source · line 1608 · raw

@a:I64 -> U32

def I64.from_u32 source · line 1613 · raw

@a:U32 -> I64

def I64.to_nat source · line 1618 · raw

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

def I64.from_nat source · line 1623 · raw

@k:Nat -> I64