Prog "OracleSetRBT" ["CEventOracle","Oracle","IOExts","SetRBT","Maybe","Prelude","RedBlackTree","OracleMaybe","OraclePrelude","OracleRedBlackTree"] [TypeSyn ("OracleSetRBT","SetRBT") Public [0] (TCons ("RedBlackTree","RedBlackTree") [TVar 0])] [Func ("OracleSetRBT","emptySetRBT") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))))) (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0])))) (Rule [1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRedBlackTree","empty") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OraclePrelude","==") []],Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OraclePrelude","==") []]]]])),Func ("OracleSetRBT","elemRBT") 2 Public (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","Bool") []))))) (Rule [2,1] (Comb FuncCall ("CEventOracle","replace") [Var 1,Comb FuncCall ("OraclePrelude",".") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleMaybe","isJust") []],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRedBlackTree","lookup") [Var 2]],Var 1]])),Func ("OracleSetRBT","insertRBT") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0]) (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0])))))) (Rule [1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleRedBlackTree","update") []]])),Func ("OracleSetRBT","insertMultiRBT") 2 Public (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0]) (TCons ("OracleRedBlackTree","RedBlackTree") [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 (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRedBlackTree","setInsertEquivalence") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OraclePrelude","==") []]]],Comb FuncCall ("OraclePrelude",".") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRedBlackTree","update") [Var 2]],Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRedBlackTree","setInsertEquivalence") [Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleSetRBT","insertMultiRBT._#lambda2") []]]],Var 1],Var 3]]))),Func ("OracleSetRBT","insertMultiRBT._#lambda2") 3 Private (FuncType (TVar 27) (FuncType (TVar 27) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","Bool") [])))) (Rule [2,3,1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb ConsCall ("Prelude","False") []])),Func ("OracleSetRBT","deleteRBT") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0]) (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0])))))) (Rule [1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleRedBlackTree","delete") []]])),Func ("OracleSetRBT","setRBT2list") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleRedBlackTree","tree2list") []]])),Func ("OracleSetRBT","unionRBT") 3 Public (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0])))) (Rule [2,3,1] (Let [(4,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(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 4,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude","[]") []]]],Comb FuncCall ("OraclePrelude","foldr") [Comb FuncCall ("OracleSetRBT","insertRBT") [Var 1],Var 3,Comb FuncCall ("Oracle","apply") [Comb FuncCall ("OracleSetRBT","setRBT2list") [Var 4],Var 2,Var 5],Var 6]]))),Func ("OracleSetRBT","intersectRBT") 3 Public (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 0])))) (Rule [2,3,1] (Let [(4,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []]),(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","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 1,Comb ConsCall ("Prelude",":") [Var 4,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude",":") [Var 6,Comb ConsCall ("Prelude",":") [Var 7,Comb ConsCall ("Prelude",":") [Var 8,Comb ConsCall ("Prelude","[]") []]]]]],Comb FuncCall ("OraclePrelude","foldr") [Comb FuncCall ("OracleSetRBT","insertRBT") [Var 1],Comb FuncCall ("OracleRedBlackTree","newTreeLike") [Var 2,Var 4],Comb FuncCall ("OraclePrelude","filter") [Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("OracleSetRBT","intersectRBT._#lambda3") [Var 3]],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("OracleSetRBT","setRBT2list") [Var 5],Var 2,Var 6],Var 7],Var 8]]))),Func ("OracleSetRBT","intersectRBT._#lambda3") 3 Private (FuncType (TCons ("OracleRedBlackTree","RedBlackTree") [TVar 46]) (FuncType (TVar 46) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","Bool") [])))) (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","apply") [Comb FuncCall ("OracleSetRBT","elemRBT") [Var 3,Var 1],Var 2,Var 4]]))),Func ("OracleSetRBT","sortRBT") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))))) (Rule [1] (Comb FuncCall ("CEventOracle","collapse") [Var 1,Comb FuncCall ("Oracle","compose") [Comb (FuncPartCall 2) ("Oracle","partCall") [],Comb (FuncPartCall 2) ("Oracle","compose") [Comb (FuncPartCall 3) ("Oracle","partFunc") []],Comb (FuncPartCall 3) ("OracleRedBlackTree","sort") []]]))] []