Prog "TableRBT" ["Prelude","RedBlackTree"] [TypeSyn ((Nothing,Nothing,"TableRBT","TableRBT")) Public [0,1] (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])] [Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"TableRBT","emptyTableRBT")) 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])) (Rule [(Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])))),"RedBlackTree","empty")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"TableRBT","emptyTableRBT._#lambda2")) [],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"TableRBT","emptyTableRBT._#lambda3")) [],Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"TableRBT","emptyTableRBT._#lambda4")) [Var ((Just (FuncType (TVar 0) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"TableRBT","emptyTableRBT._#lambda2")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"TableRBT","emptyTableRBT._#lambda3")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","==")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),1))],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"TableRBT","emptyTableRBT._#lambda4")) 3 Private (FuncType (FuncType (TVar 22) (FuncType (TVar 22) (TCons ((Nothing,Nothing,"Prelude","Bool")) []))) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 22,TVar 23]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])))) (Rule [(Just (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2),(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") [])) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))) (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") [])))),"Prelude","apply")) [Var ((Just (FuncType (TVar 22) (FuncType (TVar 22) (TCons (Nothing,Nothing,"Prelude","Bool") []))),1)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),2))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]) (TVar 22)),"Prelude","fst")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 22,TVar 23]),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"TableRBT","isEmptyTable")) 0 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"Prelude","Bool")) [])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Bool") [])),"RedBlackTree","isEmpty")) [])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]))),"TableRBT","lookupRBT")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TVar 1]))) (Rule [(Just (TVar 0),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])))),"Prelude","maybe")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1]),"Prelude","Nothing")) [],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])))),"Prelude",".")) [Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","Maybe") [TVar 1])),"Prelude","Just")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (TVar 1)),"Prelude","snd")) []]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"RedBlackTree","lookup")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),1)),Comb FuncCall ((Nothing,Just (TVar 1),"Prelude","failed")) []]]])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])))),"TableRBT","updateRBT")) 2 Public (FuncType (TVar 0) (FuncType (TVar 1) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])))) (Rule [(Just (TVar 0),1),(Just (TVar 1),2)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"RedBlackTree","update")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),1)),Var ((Just (TVar 1),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"TableRBT","tableRBT2list")) 0 Public (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]])) (Rule [] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]])),"RedBlackTree","tree2list")) [])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"TableRBT","deleteRBT")) 1 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]) (TCons ((Nothing,Nothing,"RedBlackTree","RedBlackTree")) [TCons ((Nothing,Nothing,"Prelude","(,)")) [TVar 0,TVar 1]]))) (Rule [(Just (TVar 0),1)] (Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]) (FuncType (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]) (TCons (Nothing,Nothing,"RedBlackTree","RedBlackTree") [TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]]))),"RedBlackTree","delete")) [Comb ConsCall ((Nothing,Just (FuncType (TVar 0) (FuncType (TVar 1) (TCons (Nothing,Nothing,"Prelude","(,)") [TVar 0,TVar 1]))),"Prelude","(,)")) [Var ((Just (TVar 0),1)),Comb FuncCall ((Nothing,Just (TVar 1),"Prelude","failed")) []]]))] []