{-# OPTIONS -cpp -O0  #-}

{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}

module Curry.Module.Random (module Curry.Module.Random) where

import Curry.RunTimeSystem
import Curry.Module.Prelude
import Curry.Module.System
import Curry.Module.Time



-- begin included



-- end included

c_multiplier :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_multiplier st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))))))))))))))))))))))))))))))



c_addend :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_addend st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))



c_powermask :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_powermask st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))))



c_mask :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_mask st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))))))))))))))))))))))))))))))))))))))))))))



c_intsize :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_intsize st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))



c_intspan :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_intspan st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))))))))))))))))))))))))))))



c_intlimit :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_intlimit st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))



c_sequence :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
c_sequence x1 st = let {x2 = Curry.Module.Random.c_nextseed(x1)(st)} in (Curry.Module.Prelude.:<)(x2)(Curry.Module.Random.c_sequence(x2)(st))



c_nextseed :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_nextseed x1 st = Curry.Module.Prelude.c_mod(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_42(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))))))))))))))))))(st)



c_xor :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_xor x1 x2 st = Curry.Module.Random.c_xor_case_6(x1)(x2)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Zero)(st))(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Zero)(st))(st))(st)



c_power :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_power x1 x2 st = Curry.Module.Random.c_power'46binary'4643(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(x1)(x2)(st)



c_power'46binary'4643 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_power'46binary'4643 x1 x2 x3 st = Curry.Module.Random.c_power'46binary'4643_case_4(x1)(x2)(x3)(Curry.Module.Prelude.op_61_61(x3)(Curry.Module.Prelude.C_Zero)(st))(st)



c_nextIntBits :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
c_nextIntBits x1 x2 st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Random.c_nextIntBits'46adjust'4653(Curry.Module.Random.c_power(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(Curry.Module.Prelude.op_45(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))))))(x2)(st))(st))))(Curry.Module.Random.c_sequence(Curry.Module.Prelude.c_mod(Curry.Module.Random.c_xor(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))))))))))))))))))(st))(st))(st)



c_nextIntBits'46adjust'4653 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_nextIntBits'46adjust'4653 x1 x2 st = let {x3 = Curry.Module.Prelude.c_mod(Curry.Module.Prelude.c_div(x2)(x1)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))(st)} in Curry.Module.Random.c_nextIntBits'46adjust'4653_case_2(x3)(Curry.Module.Prelude.op_62(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))))))))))))))))))))))))))))(st))(st)



c_nextInt :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
c_nextInt x1 st = Curry.Module.Random.c_nextIntBits(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))(st)



c_nextIntRange :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
c_nextIntRange x1 x2 st = let {x3 = Curry.Module.Random.c_nextIntBits(x1)(Curry.Module.Prelude.op_45(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)} in Curry.Module.Random.c_nextIntRange_case_1(x2)(x3)(Curry.Module.Prelude.op_62(x2)(Curry.Module.Prelude.C_Zero)(st))(st)



c_nextIntRange'46adjust_a'4664 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_nextIntRange'46adjust_a'4664 x1 x2 st = Curry.Module.Prelude.c_div(Curry.Module.Prelude.op_42(x1)(x2)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))))))))))))))))))))))))))))(st)



c_nextIntRange'46adjust_b'4664 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_nextIntRange'46adjust_b'4664 x1 x2 st = Curry.Module.Prelude.c_mod(x2)(x1)(st)



c_nextIntRange'46adjust_c'4664 :: Curry.Module.Prelude.C_Int -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
c_nextIntRange'46adjust_c'4664 x1 x2 st = Curry.Module.Prelude.op_62_61(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_45(x2)(Curry.Module.Prelude.c_mod(x2)(x1)(st))(st))(Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(Curry.Module.Prelude.C_Zero)(st)



c_nextIntRange'46power_of_2'4664 :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
c_nextIntRange'46power_of_2'4664 x1 st = Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_62(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Zero)(st))(Curry.Module.Random.c_nextIntRange'46power_of_2'4664(Curry.Module.Prelude.c_div(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(st))(st)



c_nextBoolean :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Bool
c_nextBoolean x1 st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_47_61))(Curry.Module.Prelude.C_Zero)))(Curry.Module.Random.c_nextIntBits(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)



c_getRandomSeed :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
c_getRandomSeed st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Time.c_getClockTime(st))(Curry.Module.Prelude.pf(Curry.Module.Random.c_getRandomSeed'46_'35lambda2))(st)



c_getRandomSeed'46_'35lambda2 :: Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
c_getRandomSeed'46_'35lambda2 x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.System.c_getCPUTime(st))(Curry.Module.Prelude.pf(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3(x1)))(st)



c_getRandomSeed'46_'35lambda2'46_'35lambda3 :: Curry.Module.Time.C_ClockTime -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Int
c_getRandomSeed'46_'35lambda2'46_'35lambda3 x1 x2 st = let {x3 = Curry.Module.Time.c_toUTCTime(x1)(st)} in Curry.Module.Prelude.c_return(Curry.Module.Prelude.c_mod(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_43(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y(x3)(st))(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo(x3)(st))(st))(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d(x3)(st))(st))(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h(x3)(st))(st))(Curry.Module.Prelude.op_42(Curry.Module.Prelude.op_42(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m(x3)(st))(Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s(x3)(st))(st))(x2)(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))))))))))))))))))(st))(st)



c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x2
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y(x)(st))(i)(xs)(st)
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP3'35y x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP3#y")(x)



c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x3
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo(x)(st))(i)(xs)(st)
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP4'35mo x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP4#mo")(x)



c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x4
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d(x)(st))(i)(xs)(st)
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP5'35d x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP5#d")(x)



c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x5
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h(x)(st))(i)(xs)(st)
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP6'35h x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP6#h")(x)



c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x6
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m(x)(st))(i)(xs)(st)
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP7'35m x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP7#m")(x)



c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s :: Curry.Module.Time.C_CalendarTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s x1@(Curry.Module.Time.C_CalendarTime x2 x3 x4 x5 x6 x7 x8) st = x7
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s (Curry.Module.Time.C_CalendarTimeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s(x)(st))(i)(xs)(st)
c_getRandomSeed'46_'35lambda2'46_'35lambda3'46_'35selFP8'35s x st = Curry.RunTimeSystem.patternFail("Random.getRandomSeed._#lambda2._#lambda3._#selFP8#s")(x)



c_nextIntRange_case_1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Random.c_nextIntRange_case_0(x2)(x3)(Curry.Module.Random.c_nextIntRange'46power_of_2'4664(x2)(st))(st)
c_nextIntRange_case_1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_nextIntRange_case_1(x2)(x3)(x)(st))(i)(xs)(st)
c_nextIntRange_case_1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Random.nextIntRange_case_1")(x)



c_nextIntRange_case_0 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Random.c_nextIntRange'46adjust_a'4664(x2)))(x3)(st)
c_nextIntRange_case_0 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Random.c_nextIntRange'46adjust_b'4664(x2)))(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.pf(Curry.Module.Random.c_nextIntRange'46adjust_c'4664(x2)))(x3)(st))(st)
c_nextIntRange_case_0 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_nextIntRange_case_0(x2)(x3)(x)(st))(i)(xs)(st)
c_nextIntRange_case_0 x2 x3 x st = Curry.RunTimeSystem.patternFail("Random.nextIntRange_case_0")(x)



c_nextIntBits'46adjust'4653_case_2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_45(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))))))))))))))))))))))))))))))))(st)
c_nextIntBits'46adjust'4653_case_2 x3 x4@Curry.Module.Prelude.C_False st = x3
c_nextIntBits'46adjust'4653_case_2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_nextIntBits'46adjust'4653_case_2(x3)(x)(st))(i)(xs)(st)
c_nextIntBits'46adjust'4653_case_2 x3 x st = Curry.RunTimeSystem.patternFail("Random.nextIntBits.adjust.53_case_2")(x)



c_power'46binary'4643_case_4 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = x1
c_power'46binary'4643_case_4 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Random.c_power'46binary'4643(Curry.Module.Prelude.op_42(x1)(Curry.Module.Random.c_power'46binary'4643_case_3(x2)(x3)(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st))(Curry.Module.Prelude.op_42(x2)(x2)(st))(Curry.Module.Prelude.c_div(x3)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st)
c_power'46binary'4643_case_4 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_power'46binary'4643_case_4(x1)(x2)(x3)(x)(st))(i)(xs)(st)
c_power'46binary'4643_case_4 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Random.power.binary.43_case_4")(x)



c_power'46binary'4643_case_3 x2 x3 x4@Curry.Module.Prelude.C_True st = x2
c_power'46binary'4643_case_3 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
c_power'46binary'4643_case_3 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_power'46binary'4643_case_3(x2)(x3)(x)(st))(i)(xs)(st)
c_power'46binary'4643_case_3 x2 x3 x st = Curry.RunTimeSystem.patternFail("Random.power.binary.43_case_3")(x)



c_xor_case_6 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Zero
c_xor_case_6 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43(Curry.Module.Random.c_xor_case_5(x1)(x2)(Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_mod(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.c_mod(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(Curry.Module.Prelude.op_42(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(Curry.Module.Random.c_xor(Curry.Module.Prelude.c_div(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(Curry.Module.Prelude.c_div(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(st))(st))(st)
c_xor_case_6 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_xor_case_6(x1)(x2)(x)(st))(i)(xs)(st)
c_xor_case_6 x1 x2 x st = Curry.RunTimeSystem.patternFail("Random.xor_case_6")(x)



c_xor_case_5 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Zero
c_xor_case_5 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
c_xor_case_5 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Random.c_xor_case_5(x1)(x2)(x)(st))(i)(xs)(st)
c_xor_case_5 x1 x2 x st = Curry.RunTimeSystem.patternFail("Random.xor_case_5")(x)