1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495typet=intletzero=0letone=1letminus_one=-1letnegx=-xletaddab=a+bletsubab=a-bletmulab=a*bletdivab=a/bletremab=amodbletsuccx=succxletpredx=predxletlogandab=alandbletlogorab=alorbletlogxorab=alxorbletlognotx=lnotxletshift_leftan=alslnletshift_rightan=aasrnletshift_right_logicalan=alsrnletabsx=absxletmax_int=max_intletmin_int=min_intexternalof_int:t->t="%identity"externalto_int:t->t="%identity"letto_int32=Stdlib.Int32.of_intletof_int32=Stdlib.Int32.to_intletto_int64=Stdlib.Int64.of_intletof_int64=Stdlib.Int64.to_intletof_floatx=int_of_floatxletto_floatx=float_of_intxletof_stringx=int_of_stringxletof_string_optx=trySome(of_stringx)withFailure_->Noneletto_stringx=string_of_intxletequal:int->int->bool=funab->a=bletcompare:int->int->int=funab->compareabletpp=Format.pp_print_intexternalto_unsigned_int:t->int="%identity"externalof_unsigned_int:int->t="%identity"letinvalid_argfmt=Format.kasprintfinvalid_argfmtletto_unsigned_int32=letuint32_mask=(0xfffflsl16)lor0xffffinfunx->lettruncated=xlanduint32_maskinifx<>truncatedtheninvalid_arg"Int63.to_unsigned_int32: %d can not fit into a 32 bits integer"xelseInt32.of_inttruncatedletof_unsigned_int32=letint32_sign_mask=1lsl31inletint32_sign_maskl=0x80000000linfunx->ifx<0lthenletx=Int32.logandx(Int32.lognotint32_sign_maskl)inInt32.to_intxlorint32_sign_maskelseInt32.to_intxletencoded_size=8externalset_64:bytes->int->int64->unit="%caml_bytes_set64u"externalget_64:string->int->int64="%caml_string_get64"externalswap64:int64->int64="%bswap_int64"letencodebuf~offt=lett=to_int64tinlett=ifnotSys.big_endianthenswap64telsetinset_64bufofftletdecodebuf~off=lett=get_64bufoffinlett=ifnotSys.big_endianthenswap64telsetinof_int64tmoduleInfix=structlet(+)ab=addablet(-)ab=subablet(*)ab=mulablet(%)ab=remablet(/)ab=divablet(land)ab=logandablet(lor)ab=logorablet(lsr)ab=shift_rightablet(lsl)ab=shift_leftablet(&&)=(land)let(||)=(lor)let(>>)=(lsr)let(<<)=(lsl)end