CurryProg "SetRBT" ["Prelude","RedBlackTree","Maybe"] [CTypeSyn ("SetRBT","SetRBT") Public [(0,"a")] (CTCons ("RedBlackTree","RedBlackTree") [CTVar (0,"a")])] [CFunc ("SetRBT","deleteRBT") 0 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","delete"))] []]), CFunc ("SetRBT","elemRBT") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Maybe","isJust"))) (CApply (CSymbol ("RedBlackTree","lookup")) (CVar (0,"e"))))] []]), CFunc ("SetRBT","emptySetRBT") 0 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("RedBlackTree","empty")) (CSymbol ("Prelude","=="))) (CSymbol ("Prelude","==")))] []]), CFunc ("SetRBT","insertMultiRBT") 1 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"e")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("RedBlackTree","setInsertEquivalence")) (CSymbol ("Prelude","==")))) (CApply (CApply (CSymbol ("Prelude",".")) (CApply (CSymbol ("RedBlackTree","update")) (CVar (0,"e")))) (CApply (CSymbol ("RedBlackTree","setInsertEquivalence")) (CLambda [CPVar (1,"_"),CPVar (2,"_")] (CSymbol ("Prelude","False"))))))] []]), CFunc ("SetRBT","insertRBT") 0 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","update"))] []]), CFunc ("SetRBT","intersectRBT") 2 Public (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"s1"),CPVar (1,"s2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("SetRBT","insertRBT"))) (CApply (CSymbol ("RedBlackTree","newTreeLike")) (CVar (0,"s1")))) (CApply (CApply (CSymbol ("Prelude","filter")) (CLambda [CPVar (2,"e")] (CApply (CApply (CSymbol ("SetRBT","elemRBT")) (CVar (2,"e"))) (CVar (1,"s2"))))) (CApply (CSymbol ("SetRBT","setRBT2list")) (CVar (0,"s1")))))] []]), CFunc ("SetRBT","setRBT2list") 0 Public (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","tree2list"))] []]), CFunc ("SetRBT","sortRBT") 0 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("Prelude","[]") [CTVar (0,"a")]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("RedBlackTree","sort"))] []]), CFunc ("SetRBT","unionRBT") 2 Public (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CFuncType (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]) (CTCons ("SetRBT","SetRBT") [CTVar (0,"a")]))) (CRules CFlex [CRule [CPVar (0,"s1"),CPVar (1,"s2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldr")) (CSymbol ("SetRBT","insertRBT"))) (CVar (1,"s2"))) (CApply (CSymbol ("SetRBT","setRBT2list")) (CVar (0,"s1"))))] []])] []