1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980(*
include Random
*)moduleState=structincludeRandom.Stateletbits32state=letbits30=Int32.of_int(bitsstate)inletadd_bitbitsi=ifboolstatethenInt32.addbits(Int32.shift_left1li)elsebitsinletbits31=add_bitbits3030inletbits32=add_bitbits3131inbits32letbits64state=letbits30=Int64.of_int(bitsstate)inletbits60=Int64.addbits30(Int64.shift_left(Int64.of_int(bitsstate))30)inletadd_bitbitsi=ifboolstatethenInt64.addbits(Int64.shift_left1Li)elsebitsinletbits61=add_bitbits6060inletbits62=add_bitbits6161inletbits63=add_bitbits6262inletbits64=add_bitbits6363inbits64letnativebitsstate=Int64.to_nativeint(bits64state)letfull_intstaten=Int64.to_int(bits64state)modnendletinit=Random.initletfull_init=Random.full_initletself_init=Random.self_initletbits=Random.bitsletint=Random.intletint32=Random.int32letnativeint=Random.nativeintletint64=Random.int64letfloat=Random.floatletbool=Random.boolletget_state=Random.get_stateletset_state=Random.set_stateletbits32()=State.bits32(get_state())letbits64()=State.bits64(get_state())letnativebits()=State.nativebits(get_state())(*
let full_int = Random.full_int
*)letfull_intn=State.full_int(get_state())n