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
U8@data:U32 -> U8
type U16 source · line 904 · raw
Data
U16@data:U32 -> U16
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.
U64@data:Word(64n) -> U64
type I32 source · line 1247 · raw
Data
I32@data:U32 -> I32
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.
I64@data:Word(64n) -> I64
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