Module "Oracle" (Just (Exporting (5,15) [(Export (QualIdent Nothing (Ident "Ref" 0))),(Export (QualIdent Nothing (Ident "partCons" 0))),(Export (QualIdent Nothing (Ident "partFunc" 0))),(Export (QualIdent Nothing (Ident "partCall" 0))),(Export (QualIdent Nothing (Ident "apply" 0))),(Export (QualIdent Nothing (Ident "$!" 0))),(Export (QualIdent Nothing (Ident "$!!" 0))),(Export (QualIdent Nothing (Ident "$#" 0))),(Export (QualIdent Nothing (Ident "$##" 0))),(Export (QualIdent Nothing (Ident ">>=" 0))),(Export (QualIdent Nothing (Ident "compose" 0))),(Export (QualIdent Nothing (Ident "unknown" 0))),(Export (QualIdent Nothing (Ident "oracle" 0))),(Export (QualIdent Nothing (Ident "oracleIO" 0))),(Export (QualIdent Nothing (Ident "fresh" 0))),(Export (QualIdent Nothing (Ident "replace" 0))),(Export (QualIdent Nothing (Ident "collapse" 0))),(Export (QualIdent Nothing (Ident "closeRef" 0))),(Export (QualIdent Nothing (Ident "expand" 0)))])) [(ImportDecl (1,1) "Prelude" False Nothing Nothing) ,(ImportDecl (18,1) "IOExts" False Nothing (Just (Importing (18,15) [(Import (Ident "getAssoc" 0))]))) ,(ImportDecl (19,1) "CEventOracle" False Nothing Nothing) ,(ImportDecl (20,1) "Meta" True Nothing Nothing) ,(ImportDecl (21,1) "Unsafe" True Nothing (Just (Importing (21,25) [(Import (Ident "unsafePerformIO" 0))]))) ,(InfixDecl (27,1) InfixR 0 [(Ident "$!" 0),(Ident "$!!" 0),(Ident "$#" 0),(Ident "$##" 0)]) ,(TypeSig (32,1) [(Ident "partCons" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))))) ,(FunctionDecl (33,1) (Ident "partCons" 0) [(Equation (33,1) (FunLhs (Ident "partCons" 0) [(VariablePattern (Ident "c" 2)),(VariablePattern (Ident "r" 2)),(VariablePattern (Ident "x" 2))]) (SimpleRhs (33,18) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "closeRef" 0))) (Variable (QualIdent Nothing (Ident "r" 2)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "c" 2))) (Variable (QualIdent Nothing (Ident "x" 2)))))) []))]) ,(TypeSig (39,1) [(Ident "partFunc" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))))) ,(FunctionDecl (40,1) (Ident "partFunc" 0) [(Equation (40,1) (FunLhs (Ident "partFunc" 0) [(VariablePattern (Ident "f" 4)),(VariablePattern (Ident "r" 4)),(VariablePattern (Ident "x" 4))]) (SimpleRhs (40,18) (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 4))) (Variable (QualIdent Nothing (Ident "x" 4)))) (Variable (QualIdent Nothing (Ident "r" 4)))) []))]) ,(TypeSig (43,1) [(Ident "partCall" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "a" 0))))) ,(FunctionDecl (44,1) (Ident "partCall" 0) [(Equation (44,1) (FunLhs (Ident "partCall" 0) [(VariablePattern (Ident "x" 6)),(VariablePattern (Ident "r" 6))]) (SimpleRhs (44,16) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "closeRef" 0))) (Variable (QualIdent Nothing (Ident "r" 6)))) (Variable (QualIdent Nothing (Ident "x" 6)))) []))]) ,(TypeSig (47,1) [(Ident "apply" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0)))))) ,(FunctionDecl (48,1) (Ident "apply" 0) [(Equation (48,1) (FunLhs (Ident "apply" 0) [(VariablePattern (Ident "f" 8)),(VariablePattern (Ident "x" 8)),(VariablePattern (Ident "r" 8))]) (SimpleRhs (48,15) (Apply (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "apply" 0))) (Variable (QualIdent Nothing (Ident "f" 8)))) (Variable (QualIdent Nothing (Ident "x" 8)))) (Variable (QualIdent Nothing (Ident "r" 8)))) []))]) ,(TypeSig (51,1) [(Ident "$!" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0)))))) ,(FunctionDecl (52,1) (Ident "$!" 0) [(Equation (52,1) (ApLhs (OpLhs (VariablePattern (Ident "f" 10)) (Ident "$!" 0) (VariablePattern (Ident "x" 10))) [(VariablePattern (Ident "r" 10))]) (SimpleRhs (52,14) (Apply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "f" 10))) (InfixOp (QualIdent (Just "CEventOracle") (Ident "$!" 0))) (Variable (QualIdent Nothing (Ident "x" 10))))) (Variable (QualIdent Nothing (Ident "r" 10)))) []))]) ,(TypeSig (55,1) [(Ident "$!!" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0)))))) ,(FunctionDecl (56,1) (Ident "$!!" 0) [(Equation (56,1) (FunLhs (Ident "$!!" 0) [(VariablePattern (Ident "f" 12)),(VariablePattern (Ident "x" 12)),(VariablePattern (Ident "r" 12))]) (SimpleRhs (56,15) (Apply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "f" 12))) (InfixOp (QualIdent (Just "CEventOracle") (Ident "$!!" 0))) (Variable (QualIdent Nothing (Ident "x" 12))))) (Variable (QualIdent Nothing (Ident "r" 12)))) []))]) ,(TypeSig (59,1) [(Ident "$#" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0)))))) ,(FunctionDecl (60,1) (Ident "$#" 0) [(Equation (60,1) (FunLhs (Ident "$#" 0) [(VariablePattern (Ident "f" 14)),(VariablePattern (Ident "x" 14)),(VariablePattern (Ident "r" 14))]) (SimpleRhs (60,14) (Apply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "f" 14))) (InfixOp (QualIdent (Just "CEventOracle") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 14))))) (Variable (QualIdent Nothing (Ident "r" 14)))) []))]) ,(TypeSig (63,1) [(Ident "$##" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0)))))) ,(FunctionDecl (64,1) (Ident "$##" 0) [(Equation (64,1) (FunLhs (Ident "$##" 0) [(VariablePattern (Ident "f" 16)),(VariablePattern (Ident "x" 16)),(VariablePattern (Ident "r" 16))]) (SimpleRhs (64,15) (Apply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "f" 16))) (InfixOp (QualIdent (Just "CEventOracle") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "x" 16))))) (Variable (QualIdent Nothing (Ident "r" 16)))) []))]) ,(TypeSig (66,1) [(Ident "headNormalFormIO" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))))) ,(FunctionDecl (67,1) (Ident "headNormalFormIO" 0) [(Equation (67,1) (FunLhs (Ident "headNormalFormIO" 0) [(VariablePattern (Ident "f" 18)),(VariablePattern (Ident "x" 18)),(VariablePattern (Ident "r" 18))]) (SimpleRhs (67,26) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "headNormalFormIO"))) []))]) ,(TypeSig (69,1) [(Ident "prim_unsafePerformIO" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "a" 0))))) ,(FunctionDecl (70,1) (Ident "prim_unsafePerformIO" 0) [(Equation (70,1) (FunLhs (Ident "prim_unsafePerformIO" 0) [(VariablePattern (Ident "act" 20)),(VariablePattern (Ident "ref" 20))]) (SimpleRhs (70,32) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "replace" 0))) (Variable (QualIdent Nothing (Ident "ref" 20)))) (Paren (Apply (Variable (QualIdent (Just "Unsafe") (Ident "unsafePerformIO" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "act" 20))) (Variable (QualIdent Nothing (Ident "ref" 20)))) (Tuple [])))))) []))]) ,(TypeSig (73,1) [(Ident "lambda_world" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))))) ,(FunctionDecl (74,1) (Ident "lambda_world" 0) [(Equation (74,1) (FunLhs (Ident "lambda_world" 0) [(VariablePattern (Ident "act" 22)),(VariablePattern (Ident "ref" 22)),(VariablePattern (Ident "_" 23))]) (SimpleRhs (74,26) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "collapse" 0))) (Variable (QualIdent Nothing (Ident "ref" 22)))) (Variable (QualIdent Nothing (Ident "act" 22)))) []))]) ,(TypeSig (77,1) [(Ident ">>=" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))))) ,(FunctionDecl (78,1) (Ident ">>=" 0) [(Equation (78,1) (FunLhs (Ident ">>=" 0) [(VariablePattern (Ident "act" 25)),(VariablePattern (Ident "cont" 25)),(VariablePattern (Ident "ref" 25))]) (SimpleRhs (78,22) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "collapse" 0))) (Variable (QualIdent Nothing (Ident "ref" 25)))) (Paren (Apply (Variable (QualIdent (Just "Oracle") (Ident "partFunc" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "bind" 0))) (Variable (QualIdent Nothing (Ident "act" 25)))) (Variable (QualIdent Nothing (Ident "cont" 25)))))))) []))]) ,(TypeSig (80,1) [(Ident "bind" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))) (ArrowType (TupleType []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))])))))) ,(FunctionDecl (81,1) (Ident "bind" 0) [(Equation (81,1) (FunLhs (Ident "bind" 0) [(VariablePattern (Ident "act" 27)),(VariablePattern (Ident "cont" 27)),(VariablePattern (Ident "world" 27)),(VariablePattern (Ident "ref" 27))]) (SimpleRhs (82,3) (Let [(PatternDecl (82,7) (VariablePattern (Ident "ref2" 29)) (SimpleRhs (82,14) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "fresh" 0))) (Tuple [])) []))] (Apply (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "expand" 0))) (Variable (QualIdent Nothing (Ident "ref" 27)))) (List [(Variable (QualIdent Nothing (Ident "ref2" 29)))])) (Paren (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "apply" 0))) (Variable (QualIdent Nothing (Ident "act" 27)))) (Variable (QualIdent Nothing (Ident "world" 27)))) (Variable (QualIdent Nothing (Ident "ref" 27)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "bind2" 0))) (Variable (QualIdent Nothing (Ident "cont" 27)))) (Variable (QualIdent Nothing (Ident "world" 27)))) (Variable (QualIdent Nothing (Ident "ref2" 29)))))))) []))]) ,(TypeSig (85,1) [(Ident "bind2" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))) (ArrowType (TupleType []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))])))))) ,(FunctionDecl (86,1) (Ident "bind2" 0) [(Equation (86,1) (FunLhs (Ident "bind2" 0) [(VariablePattern (Ident "cont" 31)),(VariablePattern (Ident "world" 31)),(VariablePattern (Ident "ref2" 31)),(VariablePattern (Ident "x" 31))]) (SimpleRhs (87,7) (Let [(PatternDecl (87,11) (VariablePattern (Ident "ref3" 33)) (SimpleRhs (87,18) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "fresh" 0))) (Tuple [])) []))] (Apply (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "expand" 0))) (Variable (QualIdent Nothing (Ident "ref2" 31)))) (List [(Variable (QualIdent Nothing (Ident "ref3" 33)))])) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "apply" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "apply" 0))) (Variable (QualIdent Nothing (Ident "cont" 31)))) (Variable (QualIdent Nothing (Ident "x" 31)))) (Variable (QualIdent Nothing (Ident "ref2" 31)))))) (Variable (QualIdent Nothing (Ident "world" 31)))) (Variable (QualIdent Nothing (Ident "ref3" 33))))))) []))]) ,(TypeSig (91,1) [(Ident "catchFail" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))))))) ,(FunctionDecl (92,1) (Ident "catchFail" 0) [(Equation (92,1) (FunLhs (Ident "catchFail" 0) [(VariablePattern (Ident "act1" 35)),(VariablePattern (Ident "act2" 35)),(VariablePattern (Ident "ref" 35))]) (SimpleRhs (93,3) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "collapse" 0))) (Variable (QualIdent Nothing (Ident "ref" 35)))) (Paren (Apply (Variable (QualIdent (Just "Oracle") (Ident "partFunc" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "catch" 0))) (Variable (QualIdent Nothing (Ident "act1" 35)))) (Variable (QualIdent Nothing (Ident "act2" 35)))))))) []))]) ,(TypeSig (95,1) [(Ident "catch" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (TupleType []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))))) ,(FunctionDecl (96,1) (Ident "catch" 0) [(Equation (96,1) (FunLhs (Ident "catch" 0) [(VariablePattern (Ident "act1" 37)),(VariablePattern (Ident "act2" 37)),(VariablePattern (Ident "world" 37)),(VariablePattern (Ident "ref" 37))]) (SimpleRhs (96,29) (Let [(PatternDecl (96,33) (VariablePattern (Ident "ref'" 39)) (SimpleRhs (96,40) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "fresh" 0))) (Tuple [])) []))] (Apply (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "expand" 0))) (Variable (QualIdent Nothing (Ident "ref" 37)))) (List [(Variable (QualIdent Nothing (Ident "ref'" 39)))])) (Paren (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "catchFail" 0))) (Paren (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "apply" 0))) (Variable (QualIdent Nothing (Ident "act1" 37)))) (Variable (QualIdent Nothing (Ident "world" 37)))) (Variable (QualIdent Nothing (Ident "ref" 37)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "(,)" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))))))) (Paren (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "apply" 0))) (Variable (QualIdent Nothing (Ident "act2" 37)))) (Variable (QualIdent Nothing (Ident "world" 37)))) (Variable (QualIdent Nothing (Ident "ref'" 39)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "(,)" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Lambda [(TuplePattern [(VariablePattern (Ident "b" 41)),(VariablePattern (Ident "res" 41))])] (InfixApply (Apply (Variable (QualIdent (Just "Oracle") (Ident "safeIOResult" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "b" 41)))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "res" 41)))))))))) []))]) ,(TypeSig (105,1) [(Ident "compose" 0)] (ArrowType (ArrowType (VariableType (Ident "b" 0)) (VariableType (Ident "c" 0))) (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "c" 0)))))) ,(FunctionDecl (106,1) (Ident "compose" 0) [(Equation (106,1) (FunLhs (Ident "compose" 0) [(VariablePattern (Ident "f" 42)),(VariablePattern (Ident "g" 42)),(VariablePattern (Ident "x" 42))]) (SimpleRhs (106,17) (Apply (Variable (QualIdent Nothing (Ident "f" 42))) (Paren (Apply (Variable (QualIdent Nothing (Ident "g" 42))) (Variable (QualIdent Nothing (Ident "x" 42)))))) []))]) ,(TypeSig (109,1) [(Ident "oracle" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))) ,(FunctionDecl (110,1) (Ident "oracle" 0) [(Equation (110,1) (FunLhs (Ident "oracle" 0) [(VariablePattern (Ident "expr" 44))]) (SimpleRhs (110,15) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "initialize" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent Nothing (Ident "expr" 44)))))) []))]) ,(TypeSig (112,1) [(Ident "oracleIO" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])]))) ,(FunctionDecl (113,1) (Ident "oracleIO" 0) [(Equation (113,1) (FunLhs (Ident "oracleIO" 0) [(VariablePattern (Ident "app" 46))]) (SimpleRhs (113,16) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "initialize" 0))) (Paren (Lambda [(VariablePattern (Ident "mainR" 48))] (Let [(PatternDecl (114,7) (VariablePattern (Ident "appRef" 49)) (SimpleRhs (114,16) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "fresh" 0))) (Tuple [])) []))] (Apply (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "expand" 0))) (Variable (QualIdent Nothing (Ident "mainR" 48)))) (List [(Variable (QualIdent Nothing (Ident "appRef" 49)))])) (Paren (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "app" 46))) (Variable (QualIdent Nothing (Ident "mainR" 48)))) (Variable (QualIdent Nothing (Ident "appRef" 49)))) (Tuple [])))))))) []))]) ,(TypeSig (118,1) [(Ident "safeIOResult" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) ,(FunctionDecl (119,1) (Ident "safeIOResult" 0) [(Equation (119,1) (FunLhs (Ident "safeIOResult" 0) [(VariablePattern (Ident "act" 51))]) (SimpleRhs (119,20) (Do [(StmtBind (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "fn" 53))]) (Apply (Variable (QualIdent (Just "IOExts") (Ident "getAssoc" 0))) (Literal (String "extfn")))),(StmtBind (VariablePattern (Ident "x" 54)) (Variable (QualIdent Nothing (Ident "act" 51)))),(StmtDecl [(PatternDecl (122,7) (VariablePattern (Ident "sx" 55)) (SimpleRhs (122,12) (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "x" 54)))) []))]),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "appendFile" 0))) (Variable (QualIdent Nothing (Ident "fn" 53)))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "sx" 55)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (Char '\n')) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "sx" 55))))))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "x" 54))))) []))]) ,(TypeSig (127,1) [(Ident "unknown" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "a" 0)))) ,(FunctionDecl (128,1) (Ident "unknown" 0) [(Equation (128,1) (FunLhs (Ident "unknown" 0) [(VariablePattern (Ident "r" 57))]) (SimpleRhs (128,13) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "unknown" 0))) (Variable (QualIdent Nothing (Ident "r" 57)))) []))]) ]