@@@~@@6?@@@@@*%int32_negAA @@@:n;n@@9C@@#add@M@@@@@@@VA@@@@@[B@@@@@@@*%int32_addBA%@@@@_q`q@@^D@@#sub@rC@@@@@@{D@@@@@E@@@@@@@*%int32_subBAJ@@@@t11t1f@@E@@#mul@F@@@@@@G@@@@@H@@@@@@@*%int32_mulBAo@@@@w||w|@@F@@#div@I@@@@@@J@@@@@K@@@@@@@*%int32_divBA@@@@zz@@G@@,unsigned_div@L@@@@@@M@@@@@N@@@@@@@@@  @  @@H@@#rem@O@@@@@@ P@@@@@Q@@@@@@@*%int32_modBA٠@@@@F l lF l @@I@@,unsigned_rem@&R@@@@@@/S@@@@@4T@@@@@@@@3L  4L  @@2J@@$succ@FU@@@@@KV@@@@@@JR ; ;KR ; T@@IK@@$pred@]W@@@@@bX@@@@@@aU  bU  @@`L@@#abs@tY@@@@@yZ@@@@@@xX  yX  @@wM@@'max_int [@@@@\ z z\ z @@N@@'min_int!\@@@@_  _  @@O@@&logand"@]@@@@@@^@@@@@_@@@@@@@ǐ*%int32_andBA@@@@ccV@@P@@%logor#@`@@@@@@a@@@@@b@@@@@@@ΐ)%int32_orBA@@@@fttft@@Q@@&logxor$@c@@@@@@d@@@@@e@@@@@@@Ր*%int32_xorBAɠ@@@@ii@@R@@&lognot%@f@@@@@g@@@@@@l&&l&A@@S@@*shift_left&@-h@@@@@@#inti@@@@@<j@@@@@@@*%int32_lslBA@@@@@oddAod@@?T@@+shift_right'@Sk@@@@@@&l@@@@@am@@@@@@@*%int32_asrBA+@@@@esfsS@@dU@@3shift_right_logical(@xn@@@@@@Ko@@@@@p@@@@@@@*%int32_lsrBAP@@@@y66y6y@@V@@&of_int)@gq@@@@@r@@@@@-%int32_of_intAAl@@@ccc@@W@@&to_int*@s@@@@@t@@@@@-%int32_to_intAA@@@)))Y@@X@@/unsigned_to_int+@u@@@@@&optionLv@@@@@@@@@aaa@@Y@@(of_float,@%floatw@@@@@x@@@@@3caml_int32_of_floatA@;caml_int32_of_float_unboxedA@AFF@'unboxed@@@'noalloc@@@@Z@@(to_float-@$y@@@@@8z@@@@@3caml_int32_to_floatA@;caml_int32_to_float_unboxed2@A-.Tm@'unboxed4TY5T`@@8TV9Ta@'noalloc?Te@Tl@@CTb@@A[@@)of_string.@&string{@@@@@[|@@@@@4caml_int32_of_stringAA%@@@^_@@]\@@-of_string_opt/@}@@@ @@ z~@@@ @@@ @@@z{@@y]@@)to_string0@@@@@@=@@@@@@KKKj@@^@@-bits_of_float1@@@@@@@@@@@8caml_int32_bits_of_floatA@ caml_int32_bits_of_float_unboxedA@";@'unboxed"'".@@"$"/@'noalloc"3":@@"0@@_@@-float_of_bits2@@@@@@@@@@@8caml_int32_float_of_bitsA@ caml_int32_float_of_bits_unboxed@AVV@'unboxed@@@'noalloc@@@@`@@!t3A;@@@A@@@@@@@@@@@a@A@'compare4@%Int32!t@@@#@@(@%Int32!t@@@$@@&@@@%@@'@@)@)*@@(b@@0unsigned_compare5@%Int32!t@@@*@@/@%Int32!t@@@+@@-@@@,@@.@@0@OP @@Nc@@%equal6@%Int32!t@@@1@@6@%Int32!t@@@2@@4$bool@@@3@@5@@7@v  w  @@ud@@#min7@%Int32!t@@@8@@=@%Int32!t@@@9@@;%Int32!t@@@:@@<@@>@    @@e@@#max8@%Int32!t@@@?@@D@%Int32!t@@@@@@B%Int32!t@@@A@@C@@E@!'!'!'!;@@f@@+seeded_hash9@@@@F@@K@%Int32!t@@@G@@I@@@H@@J@@L@!~!~!~!@@g@@$hash:@%Int32!t@@@M@@O@@@N@@P@"~"~"~"@@h@@@3032-bit integers.@ 0 This module provides operations on the type %int32 4 of signed 32-bit integers. Unlike the built-in #int3 type, the type %int32 ^ is guaranteed to be exactly 32-bit wide on all platforms. All arithmetic operations over %int326 are taken modulo 2"32@!.@ ' Performance notice: values of type %int32 1 occupy more memory space than values of type #int ", and arithmetic operations on %int32 $ are generally slower than those on #int'. Use %int32 ? only when the application requires exact 32-bit arithmetic.@ 9 Literals for 32-bit integers are suffixed by l: W let zero: int32 = 0l let one: int32 = 1l let m_one: int32 = -1l @@@@@@@@@@@@A6../../stdlib/int32.mli*Int32.zero35The 32-bit integer 0.@@@@@@@@@@@@n@@@@j)Int32.one35The 32-bit integer 1.@@@@@@@@@@@@i@@@@f/Int32.minus_one36The 32-bit integer -1.@@@@@@@@@@@@g@@@@d)Int32.neg3/Unary negation.@@@@@@@@@@@@e@ g@@@@X)Int32.add3)Addition.@@@@@@@@@@@@Y@Z@T@@@@E)Int32.sub3,Subtraction.@@@@@@@@@@@@F@"G@%A@@@@2)Int32.mul3/Multiplication.@@@@@@@@@@@@3@44@7.@@@@)Int32.div3 lInteger division. This division rounds the real quotient of its arguments towards zero, as specified for *Stdlib.(/)@@!.@@@@@@@@0Division_by_zero "if the second argument is zero.@@@@@,@R-@U'@@@@2Int32.unsigned_div3(Same as 'D@ 6, except that arguments and result are interpreted as , unsigned@1 32-bit integers.@@@@$4.08@@@@@@@)@t*@w$@@@@)Int32.rem37Integer remainder. If !y? is not zero, the result of -Int32.rem x y & satisfies the following property: ;x = Int32.add (Int32.mul (Int32.div x y) y) (Int32.rem x y)(. If %y = 0", -Int32.rem x y( raises 0Division_by_zero!.@@@@@@@@@@@@?@@@:@@@@+2Int32.unsigned_rem3(Same as ?D@ 6, except that arguments and result are interpreted as , unsigned@1 32-bit integers.@@@@$4.08@@@@@@@<@=@7@@@@-*Int32.succ3,Successor. ,Int32.succ x$ is 5Int32.add x Int32.one!.@@@@@@@@@@@@:@;@@@@1*Int32.pred3.Predecessor. ,Int32.pred x$ is 5Int32.sub x Int32.one!.@@@@@@@@@@@@>@?@@@@5)Int32.abs3%abs x: is the absolute value of !x%. On 'min_int, this is 'min_int " itself and thus remains negative.@@@@@@@@@@@@K@)L@@@@B-Int32.max_int3 ,The greatest representable 32-bit integer, 2"31@% - 1.@@@@@@@@@@@@K@@@@H-Int32.min_int3 -The smallest representable 32-bit integer, -2"31@!.@@@@@@@@@@@@Q@@@@N,Int32.logand34Bitwise logical and.@@@@@@@@@@@@O@`P@cJ@@@@;+Int32.logor33Bitwise logical or.@@@@@@@@@@@@<@r=@u7@@@@(,Int32.logxor3=Bitwise logical exclusive or.@@@@@@@@@@@@)@*@$@@@@,Int32.lognot39Bitwise logical negation.@@@@@@@@@@@@@@@@@ 0Int32.shift_left34Int32.shift_left x y( shifts !x0 to the left by !y ' bits. The result is unspecified if %y < 0$ or 'y >= 32!.@@@@@@@@@@@@)@*@$@@@@1Int32.shift_right35Int32.shift_right x y( shifts !x1 to the right by !y 7 bits. This is an arithmetic shift: the sign bit of !x T is replicated and inserted in the vacated bits. The result is unspecified if %y < 0$ or 'y >= 32!.@@@@@@@@@@@@6@7@1@@@@"9Int32.shift_right_logical3=Int32.shift_right_logical x y( shifts !x1 to the right by !y h bits. This is a logical shift: zeroes are inserted in the vacated bits regardless of the sign of !x ". The result is unspecified if %y < 0$ or 'y >= 32!.@@@@@@@@@@@@D@&E@)?@@@@0,Int32.of_int3 Convert the given integer (type #int ) to a 32-bit integer (type %int32 :). On 64-bit platforms, the argument is taken modulo 2"32@!.@@@@@@@@@@@@E@LF@@@@8,Int32.to_int3 'Convert the given 32-bit integer (type %int329) to an integer (type #int @). On 32-bit platforms, the 32-bit integer is taken modulo 2"31@ m, i.e. the high-order bit is lost during the conversion. On 64-bit platforms, the conversion is exact.@@@@@@@@@@@@M@oN@@@@@5Int32.unsigned_to_int3(Same as ,D@ $, but interprets the argument as an (unsigned@6 integer. Returns $None > if the unsigned value of the argument cannot fit into an #int!.@@@@$4.08@@@@@@@]@^@@@@M.Int32.of_float3 Convert the given floating-point number to a 32-bit integer, discarding the fractional part (truncate towards 0). If the truncated floating-point number is outside the range [fD@", D@ Y], no exception is raised, and an unspecified, platform-dependent integer is returned.@@@@@@@@@@@@Z@[@@@@J.Int32.to_float3 The equal function for int32s.@@@@$4.03@@@@@@@@@@@@@)Int32.min3 (Return the smaller of the two arguments.@@@@$4.13@@@@@@@@@@@@@)Int32.max3 (Return the greater of the two arguments.@@@@$4.13@@@@@@@@ @@@@@٠1Int32.seeded_hash3 JA seeded hash function for 32-bit ints, with the same output value as 3Hashtbl.seeded_hash@@ O. This function allows this module to be passed as argument to the functor 2Hashtbl.MakeSeeded@@!.@@@@#5.1@@@@@@@@-@0@@@@֠*Int32.hash3 MAn unseeded hash function for 32-bit ints, with the same output value as ,Hashtbl.hash@@ O. This function allows this module to be passed as argument to the functor ,Hashtbl.Make@@!.@@@@#5.1@@@@@@@@M@@@@@@@@A@@@@@