Prog "Oracle" ["CEventOracle","IOExts","Prelude","Unsafe","Meta"] [] [Func ("Oracle","partCons") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","closeRef") [Var 2,Comb FuncCall ("Prelude","apply") [Var 1,Var 3]])),Func ("Oracle","partFunc") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 2])),Func ("Oracle","partCall") 2 Public (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0))) (Rule [1,2] (Comb FuncCall ("CEventOracle","closeRef") [Var 2,Var 1])),Func ("Oracle","apply") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","apply") [Var 1,Var 2,Var 3])),Func ("Oracle","$!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$!") [Var 1,Var 2,Var 3])),Func ("Oracle","$!!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$!!") [Var 1,Var 2,Var 3])),Func ("Oracle","$#") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$#") [Var 1,Var 2,Var 3])),Func ("Oracle","$##") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$##") [Var 1,Var 2,Var 3])),Func ("Oracle","headNormalFormIO") 3 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1])))))) (Rule [1,2,3] (Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc 'h'),Comb ConsCall ("Prelude",":") [Lit (Charc 'e'),Comb ConsCall ("Prelude",":") [Lit (Charc 'a'),Comb ConsCall ("Prelude",":") [Lit (Charc 'd'),Comb ConsCall ("Prelude",":") [Lit (Charc 'N'),Comb ConsCall ("Prelude",":") [Lit (Charc 'o'),Comb ConsCall ("Prelude",":") [Lit (Charc 'r'),Comb ConsCall ("Prelude",":") [Lit (Charc 'm'),Comb ConsCall ("Prelude",":") [Lit (Charc 'a'),Comb ConsCall ("Prelude",":") [Lit (Charc 'l'),Comb ConsCall ("Prelude",":") [Lit (Charc 'F'),Comb ConsCall ("Prelude",":") [Lit (Charc 'o'),Comb ConsCall ("Prelude",":") [Lit (Charc 'r'),Comb ConsCall ("Prelude",":") [Lit (Charc 'm'),Comb ConsCall ("Prelude",":") [Lit (Charc 'I'),Comb ConsCall ("Prelude",":") [Lit (Charc 'O'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]])),Func ("Oracle","prim_unsafePerformIO") 2 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0))) (Rule [1,2] (Comb FuncCall ("CEventOracle","replace") [Var 2,Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Comb ConsCall ("Prelude","()") []]]])),Func ("Oracle","lambda_world") 3 Private (FuncType (TCons ("Prelude","IO") [TVar 0]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","collapse") [Var 2,Var 1])),Func ("Oracle",">>=") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1])))))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","collapse") [Var 3,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("Oracle","bind") [Var 1,Var 2]]])),Func ("Oracle","bind") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("Prelude","()") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 1]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 4,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Oracle","apply") [Var 1,Var 3,Var 4],Comb (FuncPartCall 1) ("Oracle","bind2") [Var 2,Var 3,Var 5]]]))),Func ("Oracle","bind2") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("Prelude","()") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 3,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("Oracle","apply") [Var 1,Var 4,Var 3],Var 2,Var 5]]))),Func ("Oracle","catchFail") 3 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","collapse") [Var 3,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("Oracle","catch") [Var 1,Var 2]]])),Func ("Oracle","catch") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (TCons ("Prelude","()") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 0]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 4,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Oracle","apply") [Var 1,Var 3,Var 4],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (ConsPartCall 1) ("Prelude","(,)") [Comb ConsCall ("Prelude","True") []]]],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Oracle","apply") [Var 2,Var 3,Var 5],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (ConsPartCall 1) ("Prelude","(,)") [Comb ConsCall ("Prelude","False") []]]]],Comb (FuncPartCall 1) ("Oracle","catch._#lambda2") []]]))),Func ("Oracle","catch._#lambda2") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Bool") [],TVar 162]) (TCons ("Prelude","IO") [TVar 162])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("Prelude","return") [Var 2]],Comb FuncCall ("Prelude","return") [Var 3]])])),Func ("Oracle","compose") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Var 1,Comb FuncCall ("Prelude","apply") [Var 2,Var 3]])),Func ("Oracle","oracle") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("CEventOracle","initialize") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Var 1]])),Func ("Oracle","oracleIO") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("CEventOracle","initialize") [Comb (FuncPartCall 1) ("Oracle","oracleIO._#lambda3") [Var 1]])),Func ("Oracle","oracleIO._#lambda3") 2 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 195])))) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 195]))) (Rule [1,2] (Let [(3,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 2,Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Var 3],Comb ConsCall ("Prelude","()") []]]))),Func ("Oracle","safeIOResult") 1 Private (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TVar 0])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","getAssoc") [Comb ConsCall ("Prelude",":") [Lit (Charc 'e'),Comb ConsCall ("Prelude",":") [Lit (Charc 'x'),Comb ConsCall ("Prelude",":") [Lit (Charc 't'),Comb ConsCall ("Prelude",":") [Lit (Charc 'f'),Comb ConsCall ("Prelude",":") [Lit (Charc 'n'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb (FuncPartCall 1) ("Oracle","safeIOResult._#lambda4") [Var 1]])),Func ("Oracle","safeIOResult._#lambda4") 2 Private (FuncType (TCons ("Prelude","IO") [TVar 120]) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TVar 120]))) (Rule [1,2] (Case Flex (Var 2) [Branch (Pattern ("Prelude","Just") [3]) (Comb FuncCall ("Prelude",">>=") [Var 1,Comb (FuncPartCall 1) ("Oracle","safeIOResult._#lambda4._#lambda5") [Var 3]])])),Func ("Oracle","safeIOResult._#lambda4._#lambda5") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 120) (TCons ("Prelude","IO") [TVar 120]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","show") [Var 2])] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","appendFile") [Var 1,Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Comb FuncCall ("Prelude","length") [Var 3]],Comb ConsCall ("Prelude",":") [Lit (Charc '\n'),Var 3]]],Comb FuncCall ("Prelude","return") [Var 2]]))),Func ("Oracle","unknown") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (Rule [1] (Comb FuncCall ("CEventOracle","unknown") [Var 1]))] [Op ("Oracle","$!") InfixrOp 0,Op ("Oracle","$!!") InfixrOp 0,Op ("Oracle","$#") InfixrOp 0,Op ("Oracle","$##") InfixrOp 0]