Prog "OracleRandomExternal" ["CEventOracle","Oracle","IOExts","RandomExternal","Prelude","OraclePrelude"] [] [Func ("OracleRandomExternal","split") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [2,1] (Let [(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude","[]") []],Let [(3,Comb FuncCall ("Oracle","$##") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRandomExternal","prim_split") []],Var 2,Var 1])] (Let [(7,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 6,Comb ConsCall ("Prelude",":") [Var 7,Comb ConsCall ("Prelude","[]") []],Let [(4,Comb FuncCall ("OracleRandomExternal","split._#selFP3#s1") [Var 3,Var 6])] (Let [(8,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 7,Comb ConsCall ("Prelude",":") [Var 8,Comb ConsCall ("Prelude","[]") []],Let [(5,Comb FuncCall ("OracleRandomExternal","split._#selFP4#s2") [Var 3,Var 7])] (Comb FuncCall ("CEventOracle","replace") [Var 8,Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("OracleRandomExternal","split") [Var 5,Var 8]]])]))]))]))),Func ("OracleRandomExternal","split._#selFP3#s1") 2 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","Int") []))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleRandomExternal","_case_1") [Var 2,Var 1]])),Func ("OracleRandomExternal","split._#selFP4#s2") 2 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","Int") []))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleRandomExternal","_case_0") [Var 2,Var 1]])),Func ("OracleRandomExternal","nextInt") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("Oracle","$##") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRandomExternal","prim_nextInt") []],Var 2,Var 1]])),Func ("OracleRandomExternal","nextIntRange") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])))) (Rule [2,3,1] (Let [(4,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 4,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Oracle","$##") [Comb FuncCall ("Oracle","$##") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleRandomExternal","prim_nextIntRange") []],Var 2,Var 1],Var 3,Var 4]]))),Func ("OracleRandomExternal","nextBoolean") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []]))) (Rule [2,1] (Let [(3,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("OraclePrelude","map") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OraclePrelude","==") [Lit (Intc 0)]],Comb FuncCall ("OracleRandomExternal","nextIntRange") [Var 2,Lit (Intc 1),Var 1],Var 3]]))),Func ("OracleRandomExternal","_case_0") 2 Private (TVar (-42)) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Case Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb FuncCall ("CEventOracle","collapse") [Var 1,Var 4])]])),Func ("OracleRandomExternal","_case_1") 2 Private (TVar (-42)) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Case Flex (Var 2) [Branch (Pattern ("Prelude","(,)") [3,4]) (Comb FuncCall ("CEventOracle","collapse") [Var 1,Var 3])]])),Func ("OracleRandomExternal","prim_split") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Int") []]))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb FuncCall ("RandomExternal","prim_split") [Var 2]])),Func ("OracleRandomExternal","prim_nextInt") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb FuncCall ("RandomExternal","prim_nextInt") [Var 2]])),Func ("OracleRandomExternal","prim_nextIntRange") 3 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])))) (Rule [3,2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb FuncCall ("RandomExternal","prim_nextIntRange") [Var 3,Var 2]])),Func ("OracleRandomExternal","getRandomSeed") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Int") []])))) (Rule [1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","lambda_world") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("RandomExternal","getRandomSeed") []]]]))] []