Prog "OracleTraversal" ["CEventOracle","Oracle","IOExts","Traversal","Prelude","OraclePrelude"] [] [Func ("OracleTraversal","noChildren") 2 Public (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (Rule [2,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OraclePrelude","const") [Var 2]]]])),Func ("OracleTraversal","children") 2 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 1]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude",".") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OraclePrelude","fst") []],Var 2,Var 1]])),Func ("OracleTraversal","replaceChildren") 2 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude",".") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OraclePrelude","snd") []],Var 2,Var 1]])),Func ("OracleTraversal","mapChildren") 4 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0))))) (Rule [2,3,4,1] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(7,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(8,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(9,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude",":") [Var 7,Comb ConsCall ("Prelude",":") [Var 8,Comb ConsCall ("Prelude",":") [Var 9,Comb ConsCall ("Prelude","[]") []]]]]],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("Oracle","apply") [Comb FuncCall ("OracleTraversal","replaceChildren") [Var 2,Var 1],Var 4,Var 5],Comb FuncCall ("OraclePrelude","map") [Var 3,Comb FuncCall ("Oracle","apply") [Comb FuncCall ("OracleTraversal","children") [Var 2,Var 6],Var 4,Var 7],Var 8],Var 9]]))),Func ("OracleTraversal","family") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))]))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","[]") [TVar 0])))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleTraversal","familyFL") [Var 2,Var 3,Comb ConsCall ("Prelude","[]") [],Var 1]])),Func ("OracleTraversal","childFamilies") 4 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1))]))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","[]") [TVar 1]))))) (Rule [2,3,4,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleTraversal","childFamiliesFL") [Var 2,Var 3,Var 4,Comb ConsCall ("Prelude","[]") [],Var 1]])),Func ("OracleTraversal","mapFamily") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0)))))) (Rule [2,3,1] (Let [(4,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 4,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("OraclePrelude",".") [Var 3,Comb FuncCall ("Oracle","apply") [Comb FuncCall ("OracleTraversal","mapChildFamilies") [Var 2,Var 2,Var 1],Var 3,Var 4],Var 5]]))),Func ("OracleTraversal","mapChildFamilies") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1))]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (TVar 1))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0)))))))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude",".") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleTraversal","mapChildren") [Var 2]],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleTraversal","mapFamily") [Var 3]],Var 1]])),Func ("OracleTraversal","evalFamily") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 0]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0)))))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleTraversal","mapFamily") [Var 2,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleTraversal","evalFamily.g.19") [Var 3,Var 2]],Var 1]])),Func ("OracleTraversal","evalFamily.g.19") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 100) (TCons ("Prelude","Maybe") [TVar 100]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 100) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 100],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 100]) (TVar 100))]))) (FuncType (TVar 100) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 100))))) (Rule [2,3,4,1] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("OraclePrelude","maybe") [Var 4,Comb FuncCall ("OracleTraversal","mapFamily") [Var 3,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleTraversal","evalFamily.g.19") [Var 2,Var 3]],Var 1],Comb FuncCall ("Oracle","apply") [Var 2,Var 4,Var 5],Var 6]]))),Func ("OracleTraversal","evalChildFamilies") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1))]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (TCons ("Prelude","Maybe") [TVar 1]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0)))))))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude",".") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleTraversal","mapChildren") [Var 2]],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleTraversal","evalFamily") [Var 3]],Var 1]])),Func ("OracleTraversal","fold") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1))))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleTraversal","foldChildren") [Var 2,Var 2,Var 3,Var 3]]])),Func ("OracleTraversal","foldChildren") 6 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TVar 3))))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TVar 2))))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 3))))))) (Rule [2,3,4,5,6,1] (Let [(7,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(8,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(9,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(10,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(11,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 7,Comb ConsCall ("Prelude",":") [Var 8,Comb ConsCall ("Prelude",":") [Var 9,Comb ConsCall ("Prelude",":") [Var 10,Comb ConsCall ("Prelude",":") [Var 11,Comb ConsCall ("Prelude","[]") []]]]]],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("Oracle","apply") [Var 4,Var 6,Var 1],Comb FuncCall ("OraclePrelude","map") [Comb FuncCall ("OracleTraversal","fold") [Var 3,Var 5,Var 7],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("OracleTraversal","children") [Var 2,Var 8],Var 6,Var 9],Var 10],Var 11]]))),Func ("OracleTraversal","replaceChildrenIO") 2 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 1]]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))))))))) (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",".") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleTraversal","liftIO") []],Comb FuncCall ("OracleTraversal","replaceChildren") [Var 2,Var 1],Var 3]]))),Func ("OracleTraversal","mapChildrenIO") 4 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (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 0]))))))) (Rule [2,3,4,1] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(7,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(8,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(9,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(10,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude",":") [Var 7,Comb ConsCall ("Prelude",":") [Var 8,Comb ConsCall ("Prelude",":") [Var 9,Comb ConsCall ("Prelude",":") [Var 10,Comb ConsCall ("Prelude","[]") []]]]]]],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("Oracle","apply") [Comb FuncCall ("OracleTraversal","replaceChildrenIO") [Var 2,Var 1],Var 4,Var 5],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("OraclePrelude","mapIO") [Var 3,Var 6],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("OracleTraversal","children") [Var 2,Var 7],Var 4,Var 8],Var 9],Var 10]]))),Func ("OracleTraversal","mapFamilyIO") 4 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))))))) (Rule [2,3,4,1] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(7,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude",":") [Var 7,Comb ConsCall ("Prelude","[]") []]]],Comb FuncCall ("Oracle",">>=") [Comb FuncCall ("Oracle","apply") [Comb FuncCall ("Oracle","apply") [Comb FuncCall ("OracleTraversal","mapChildFamiliesIO") [Var 2,Var 2,Var 1],Var 3,Var 5],Var 4,Var 6],Var 3,Var 7]]))),Func ("OracleTraversal","mapChildFamiliesIO") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1))]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))))))))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude",".") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleTraversal","mapChildrenIO") [Var 2]],Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleTraversal","mapFamilyIO") [Var 3]],Var 1]])),Func ("OracleTraversal","evalFamilyIO") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]]))))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))))))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleTraversal","mapFamilyIO") [Var 2,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleTraversal","evalFamilyIO.g.37") [Var 3,Var 2]]]]])),Func ("OracleTraversal","evalFamilyIO.g.37") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 202) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 202]]))))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 202) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 202],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 202]) (TVar 202))]))) (FuncType (TVar 202) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 202]))))))) (Rule [2,3,4,1] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("Oracle",">>=") [Comb FuncCall ("Oracle","apply") [Var 2,Var 4,Var 1],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OraclePrelude","maybe") [Comb FuncCall ("OraclePrelude","return") [Var 4,Var 5],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleTraversal","mapFamilyIO") [Var 3,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleTraversal","evalFamilyIO.g.37") [Var 2,Var 3]]]]]],Var 6]]))),Func ("OracleTraversal","evalChildFamiliesIO") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1))]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 1]]))))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))))))))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude",".") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleTraversal","mapChildrenIO") [Var 2]],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleTraversal","evalFamilyIO") [Var 3]],Var 1]])),Func ("OracleTraversal","concatFL") 3 Private (FuncType (TCons ("Prelude","[]") [FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","[]") [TVar 0])))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleTraversal","_case_0") [Var 3,Var 2,Var 1]])),Func ("OracleTraversal","familyFL") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0))]))) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","[]") [TVar 0]))))) (Rule [2,3,4,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("OracleTraversal","childFamiliesFL") [Var 2,Var 2,Var 3,Var 4,Var 1]]])),Func ("OracleTraversal","childFamiliesFL") 5 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0))]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1))]))) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","[]") [TVar 1])))))) (Rule [2,3,4,5,1] (Let [(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(7,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(8,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude",":") [Var 7,Comb ConsCall ("Prelude",":") [Var 8,Comb ConsCall ("Prelude","[]") []]]],Comb FuncCall ("OracleTraversal","concatFL") [Comb FuncCall ("OraclePrelude","map") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleTraversal","familyFL") [Var 3]],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("OracleTraversal","children") [Var 2,Var 1],Var 4,Var 6],Var 7],Var 5,Var 8]]))),Func ("OracleTraversal","liftIO") 3 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (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 1])))))) (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",">>=") [Var 3,Comb FuncCall ("OraclePrelude",".") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OraclePrelude","return") []],Var 2,Var 1],Var 4]]))),Func ("OracleTraversal","_case_0") 3 Private (TVar (-42)) (Rule [3,2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Case Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("CEventOracle","collapse") [Var 1,Var 3]),Branch (Pattern ("Prelude",":") [4,5]) (Let [(6,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Oracle","apply") [Var 4,Comb FuncCall ("OracleTraversal","concatFL") [Var 5,Var 3,Var 1],Var 6]]))]]))] []