Prog "SetRBT" ["Maybe","Prelude","RedBlackTree"] [TypeSyn ((Nothing,Nothing,"SetRBT","SetRBT")) Public [0] (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0])] [Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])),"SetRBT","emptySetRBT")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"RedBlackTree","empty")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) []])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","elemRBT")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"Maybe","isJust")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 0]))),"RedBlackTree","lookup")) [Var ((Just (TVar 0),1))]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","insertRBT")) 0 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","update")) [])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","insertMultiRBT")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","setInsertEquivalence")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) []],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","update")) [Var ((Just (TVar 0),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","setInsertEquivalence")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","insertMultiRBT._#lambda2")) []]]])),Func ((Nothing,Just (FuncType (TVar 27) (FuncType (TVar 27) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","insertMultiRBT._#lambda2")) 2 Private (FuncType (TVar 27) (FuncType (TVar 27) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TVar 27),1),(Just (TVar 27),2)] (Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) [])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","deleteRBT")) 0 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"RedBlackTree","delete")) [])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"SetRBT","setRBT2list")) 0 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"RedBlackTree","tree2list")) [])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","unionRBT")) 2 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"Prelude","foldr")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","insertRBT")) [],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"SetRBT","setRBT2list")) [],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","intersectRBT")) 2 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 0]))) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])))),"Prelude","foldr")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]))),"SetRBT","insertRBT")) [],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0])),"RedBlackTree","newTreeLike")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","filter")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","intersectRBT._#lambda3")) [Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),2))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0])),"SetRBT","setRBT2list")) [],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 0]),1))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]) (FuncType (TVar 46) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","intersectRBT._#lambda3")) 2 Private (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TVar 46]) (FuncType (TVar 46) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]),1),(Just (TVar 46),2)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 46) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"SetRBT","elemRBT")) [Var ((Just (TVar 46),2))],Var ((Just (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TVar 46]),1))])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"SetRBT","sortRBT")) 0 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TVar 0]))) (Rule [] (Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 0]))),"RedBlackTree","sort")) []))] []