CurryProg "TableRBT" ["Prelude","RedBlackTree"] [CTypeSyn ("TableRBT","TableRBT") Public [(0,"key"),(1,"a")] (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"key"),CTVar (1,"a")]])] [CFunc ("TableRBT","deleteRBT") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]))) (CRules CFlex [CRule [CPVar (0,"key")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("RedBlackTree","delete")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"key"))) (CSymbol ("Prelude","failed"))))] []]), CFunc ("TableRBT","emptyTableRBT") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [CPVar (0,"lt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("RedBlackTree","empty")) (CLambda [CPVar (1,"x"),CPVar (2,"y")] (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("Prelude","fst")) (CVar (1,"x")))) (CApply (CSymbol ("Prelude","fst")) (CVar (2,"y")))))) (CLambda [CPVar (3,"x"),CPVar (4,"y")] (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("Prelude","fst")) (CVar (3,"x")))) (CApply (CSymbol ("Prelude","fst")) (CVar (4,"y")))))) (CLambda [CPVar (5,"x"),CPVar (6,"y")] (CApply (CApply (CVar (0,"lt")) (CApply (CSymbol ("Prelude","fst")) (CVar (5,"x")))) (CApply (CSymbol ("Prelude","fst")) (CVar (6,"y"))))))] []]), CFunc ("TableRBT","isEmptyTable") 0 Public (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","isEmpty"))] []]), CFunc ("TableRBT","lookupRBT") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","Maybe") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"k")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CApply (CSymbol ("Prelude","maybe")) (CSymbol ("Prelude","Nothing"))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","Just"))) (CSymbol ("Prelude","snd"))))) (CApply (CSymbol ("RedBlackTree","lookup")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CSymbol ("Prelude","failed")))))] []]), CFunc ("TableRBT","tableRBT2list") 0 Public (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","tree2list"))] []]), CFunc ("TableRBT","updateRBT") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("RedBlackTree","RedBlackTree") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])))) (CRules CFlex [CRule [CPVar (0,"k"),CPVar (1,"e")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("RedBlackTree","update")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CVar (1,"e"))))] []])] []