Prog "OracleTableRBT" ["CEventOracle","Oracle","IOExts","TableRBT","Prelude","RedBlackTree","OraclePrelude","OracleRedBlackTree"] [TypeSyn ("OracleTableRBT","TableRBT") Public [0,1] (TCons ("RedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])] [Func ("OracleTableRBT","emptyTableRBT") 2 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))))) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("OracleRedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OracleRedBlackTree","empty") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleTableRBT","emptyTableRBT._#lambda2") []],Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleTableRBT","emptyTableRBT._#lambda3") []],Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleTableRBT","emptyTableRBT._#lambda4") [Var 2]],Var 1]])),Func ("OracleTableRBT","emptyTableRBT._#lambda2") 3 Private (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","Bool") [])))) (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","==") [Comb FuncCall ("OraclePrelude","fst") [Var 2,Var 1],Comb FuncCall ("OraclePrelude","fst") [Var 3,Var 4],Var 5]]))),Func ("OracleTableRBT","emptyTableRBT._#lambda3") 3 Private (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","Bool") [])))) (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","==") [Comb FuncCall ("OraclePrelude","fst") [Var 2,Var 1],Comb FuncCall ("OraclePrelude","fst") [Var 3,Var 4],Var 5]]))),Func ("OracleTableRBT","emptyTableRBT._#lambda4") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 22) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 22) (TCons ("Prelude","Bool") []))))) (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons ("Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","Bool") []))))) (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","apply") [Comb FuncCall ("Oracle","apply") [Var 2,Comb FuncCall ("OraclePrelude","fst") [Var 3,Var 1],Var 5],Comb FuncCall ("OraclePrelude","fst") [Var 4,Var 6],Var 7]]))),Func ("OracleTableRBT","isEmptyTable") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","Bool") [])))) (Rule [1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRedBlackTree","isEmpty") []]])),Func ("OracleTableRBT","lookupRBT") 2 Public (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","Maybe") [TVar 1]))))) (Rule [2,1] (Let [(3,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(4,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude",":") [Var 4,Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("OraclePrelude",".") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OraclePrelude","maybe") [Comb ConsCall ("Prelude","Nothing") [],Comb FuncCall ("OraclePrelude",".") [Comb (FuncPartCall 2) ("Oracle","partCons") [Comb (ConsPartCall 1) ("Prelude","Just") []],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OraclePrelude","snd") []],Var 1]]],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRedBlackTree","lookup") [Comb ConsCall ("Prelude","(,)") [Var 2,Comb FuncCall ("OraclePrelude","failed") [Var 3]]]],Var 4]]))),Func ("OracleTableRBT","updateRBT") 3 Public (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("OracleRedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])))))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRedBlackTree","update") [Comb ConsCall ("Prelude","(,)") [Var 2,Var 3]]]])),Func ("OracleTableRBT","tableRBT2list") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TVar 0,TVar 1]])))) (Rule [1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRedBlackTree","tree2list") []]])),Func ("OracleTableRBT","deleteRBT") 2 Public (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]) (TCons ("OracleRedBlackTree","RedBlackTree") [TCons ("Prelude","(,)") [TVar 0,TVar 1]]))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRedBlackTree","delete") [Comb ConsCall ("Prelude","(,)") [Var 2,Comb FuncCall ("OraclePrelude","failed") [Var 1]]]]]))] []