CurryProg "FiniteMap" ["Prelude","Maybe"] [CTypeSyn ("FiniteMap","LeKey") Private [(0,"key")] (CFuncType (CTVar (0,"key")) (CFuncType (CTVar (0,"key")) (CTCons ("Prelude","Bool") []))), CType ("FiniteMap","FM") Public [(0,"key"),(1,"elt")] [CCons ("FiniteMap","FM") 2 Public [CTCons ("FiniteMap","LeKey") [CTVar (0,"key")],CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]]], CType ("FiniteMap","FiniteMap") Private [(0,"key"),(1,"elt")] [CCons ("FiniteMap","EmptyFM") 0 Private [],CCons ("FiniteMap","Branch") 5 Private [CTVar (0,"key"),CTVar (1,"elt"),CTCons ("Prelude","Int") [],CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")],CTCons ("FiniteMap","FiniteMap") [CTVar (0,"key"),CTVar (1,"elt")]]], CTypeSyn ("FiniteMap","FiniteSet") Private [(0,"key")] (CTCons ("FiniteMap","FM") [CTVar (0,"key"),CTCons ("Prelude","()") []])] [CFunc ("FiniteMap","addListToFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","addListToFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"key_elt_pairs"))))] []]), CFunc ("FiniteMap","addListToFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm"),CPVar (2,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addListToFM_C'")) (CVar (0,"le"))) (CLambda [CPVar (3,"_"),CPVar (4,"new")] (CVar (4,"new")))) (CVar (1,"fm"))) (CVar (2,"key_elt_pairs")))] []]), CFunc ("FiniteMap","addListToFM_C") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (1,"b"),CTVar (0,"a")]]) (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")],CPVar (3,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addListToFM_C'")) (CVar (1,"le"))) (CVar (0,"combiner"))) (CVar (2,"fm"))) (CVar (3,"key_elt_pairs"))))] []]), CFunc ("FiniteMap","addListToFM_C'") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (1,"b")) (CTVar (1,"b")))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"combiner"),CPVar (2,"fm"),CPVar (3,"key_elt_pairs")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CSymbol ("FiniteMap","add"))) (CVar (2,"fm"))) (CVar (3,"key_elt_pairs")))] [CLocalFunc (CFunc ("FiniteMap","add") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_234"),CTVar (3,"_235")]) (CFuncType (CTCons ("Prelude","(,)") [CTVar (2,"_234"),CTVar (3,"_235")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_234"),CTVar (3,"_235")]))) (CRules CFlex [CRule [CPVar (4,"fmap"),CPComb ("Prelude","(,)") [CPVar (5,"key"),CPVar (6,"elt")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (0,"le"))) (CVar (1,"combiner"))) (CVar (4,"fmap"))) (CVar (5,"key"))) (CVar (6,"elt")))] []]))]]), CFunc ("FiniteMap","addToFM") 3 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"key"),CPVar (3,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"key"))) (CVar (3,"elt"))))] []]), CFunc ("FiniteMap","addToFM'") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm"),CPVar (2,"key"),CPVar (3,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (0,"le"))) (CLambda [CPVar (4,"_"),CPVar (5,"new")] (CVar (5,"new")))) (CVar (1,"fm"))) (CVar (2,"key"))) (CVar (3,"elt")))] []]), CFunc ("FiniteMap","addToFM_C") 4 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")]) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (0,"a")) (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")],CPVar (3,"key"),CPVar (4,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (1,"le"))) (CVar (0,"combiner"))) (CVar (2,"fm"))) (CVar (3,"key"))) (CVar (4,"elt"))))] []]), CFunc ("FiniteMap","addToFM_C'") 5 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (1,"b")) (CTVar (1,"b")))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (2,"key"),CPVar (3,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","unitFM'")) (CVar (2,"key"))) (CVar (3,"elt")))] [],CRule [CPVar (4,"le"),CPVar (5,"combiner"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"size"),CPVar (9,"fm_l"),CPVar (10,"fm_r")],CPVar (11,"new_key"),CPVar (12,"new_elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (4,"le")) (CVar (11,"new_key"))) (CVar (6,"key")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (4,"le"))) (CVar (5,"combiner"))) (CVar (9,"fm_l"))) (CVar (11,"new_key"))) (CVar (12,"new_elt")))) (CVar (10,"fm_r")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (11,"new_key"))) (CVar (6,"key")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (11,"new_key"))) (CApply (CApply (CVar (5,"combiner")) (CVar (7,"elt"))) (CVar (12,"new_elt")))) (CVar (8,"size"))) (CVar (9,"fm_l"))) (CVar (10,"fm_r")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CVar (9,"fm_l"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM_C'")) (CVar (4,"le"))) (CVar (5,"combiner"))) (CVar (10,"fm_r"))) (CVar (11,"new_key"))) (CVar (12,"new_elt"))))))] []]), CFunc ("FiniteMap","delFromFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"del_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"del_key"))))] []]), CFunc ("FiniteMap","delFromFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"del_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"del_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"key"))) (CVar (4,"elt"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"del_key")))) (CVar (7,"fm_r")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"del_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueBal")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (7,"fm_r")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"key"))) (CVar (4,"elt"))) (CVar (6,"fm_l"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"del_key"))))))] []]), CFunc ("FiniteMap","delListFromFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"keys")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CApply (CSymbol ("Prelude","foldl")) (CApply (CSymbol ("FiniteMap","delFromFM'")) (CVar (0,"le")))) (CVar (1,"fm"))) (CVar (2,"keys"))))] []]), CFunc ("FiniteMap","deleteMax") 2 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","Branch") [CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"fm_l"),CPComb ("FiniteMap","EmptyFM") []]] [(CSymbol ("Prelude","success"),CVar (4,"fm_l"))] [],CRule [CPVar (5,"le"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"_"),CPVar (9,"fm_l"),CPComb ("FiniteMap","Branch") [CPVar (10,"key_r"),CPVar (11,"elt_r"),CPVar (12,"s_r"),CPVar (13,"fm_rl"),CPVar (14,"fm_rr")]]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CVar (9,"fm_l"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMax")) (CVar (5,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (10,"key_r"))) (CVar (11,"elt_r"))) (CVar (12,"s_r"))) (CVar (13,"fm_rl"))) (CVar (14,"fm_rr")))))] []]), CFunc ("FiniteMap","deleteMin") 2 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","Branch") [CPVar (1,"_"),CPVar (2,"_"),CPVar (3,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (4,"fm_r")]] [(CSymbol ("Prelude","success"),CVar (4,"fm_r"))] [],CRule [CPVar (5,"le"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"_"),CPComb ("FiniteMap","Branch") [CPVar (9,"key_l"),CPVar (10,"elt_l"),CPVar (11,"s_l"),CPVar (12,"fm_ll"),CPVar (13,"fm_lr")],CPVar (14,"fm_r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (6,"key"))) (CVar (7,"elt"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMin")) (CVar (5,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (9,"key_l"))) (CVar (10,"elt_l"))) (CVar (11,"s_l"))) (CVar (12,"fm_ll"))) (CVar (13,"fm_lr"))))) (CVar (14,"fm_r")))] []]), CFunc ("FiniteMap","elemFM") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"fm")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Maybe","isJust")) (CApply (CApply (CSymbol ("FiniteMap","lookupFM")) (CVar (1,"fm"))) (CVar (0,"key"))))] []]), CFunc ("FiniteMap","elementOf") 0 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","elemFM"))] []]), CFunc ("FiniteMap","eltsFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (1,"b")])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM")) (CLambda [CPVar (1,"_"),CPVar (2,"elt"),CPVar (3,"rest")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"elt"))) (CVar (3,"rest"))))) (CSymbol ("Prelude","[]"))) (CVar (0,"fm")))] []]), CFunc ("FiniteMap","emptyFM") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")])) (CRules CFlex [CRule [CPVar (0,"le")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CSymbol ("FiniteMap","EmptyFM")))] []]), CFunc ("FiniteMap","emptySet") 0 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","emptyFM"))] []]), CFunc ("FiniteMap","eqFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") []))) (CRules CFlex [CRule [CPVar (0,"fm_1"),CPVar (1,"fm_2")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","sizeFM")) (CVar (0,"fm_1")))) (CApply (CSymbol ("FiniteMap","sizeFM")) (CVar (1,"fm_2"))))) (CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (0,"fm_1")))) (CApply (CSymbol ("FiniteMap","fmToList")) (CVar (1,"fm_2")))))] []]), CFunc ("FiniteMap","filterFM") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"p"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (1,"le"))) (CVar (0,"p"))) (CVar (2,"fm"))))] []]), CFunc ("FiniteMap","filterFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPVar (3,"p"),CPComb ("FiniteMap","Branch") [CPVar (4,"key"),CPVar (5,"elt"),CPVar (6,"_"),CPVar (7,"fm_l"),CPVar (8,"fm_r")]] [(CApply (CApply (CVar (3,"p")) (CVar (4,"key"))) (CVar (5,"elt")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (2,"le"))) (CVar (4,"key"))) (CVar (5,"elt"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (7,"fm_l")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (8,"fm_r")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (2,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (7,"fm_l")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","filterFM'")) (CVar (2,"le"))) (CVar (3,"p"))) (CVar (8,"fm_r"))))] []]), CFunc ("FiniteMap","findMax") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")])) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"key"),CPVar (1,"elt"),CPVar (2,"_"),CPVar (3,"_"),CPComb ("FiniteMap","EmptyFM") []]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"key"))) (CVar (1,"elt")))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_"),CPVar (7,"_"),CPComb ("FiniteMap","Branch") [CPVar (8,"key_r"),CPVar (9,"elt_r"),CPVar (10,"s_r"),CPVar (11,"fm_rl"),CPVar (12,"fm_rr")]]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","findMax")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (8,"key_r"))) (CVar (9,"elt_r"))) (CVar (10,"s_r"))) (CVar (11,"fm_rl"))) (CVar (12,"fm_rr"))))] []]), CFunc ("FiniteMap","findMin") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")])) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"key"),CPVar (1,"elt"),CPVar (2,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (3,"_")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"key"))) (CVar (1,"elt")))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (4,"_"),CPVar (5,"_"),CPVar (6,"_"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_l"),CPVar (8,"elt_l"),CPVar (9,"s_l"),CPVar (10,"fm_ll"),CPVar (11,"fm_lr")],CPVar (12,"_")]] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","findMin")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (7,"key_l"))) (CVar (8,"elt_l"))) (CVar (9,"s_l"))) (CVar (10,"fm_ll"))) (CVar (11,"fm_lr"))))] []]), CFunc ("FiniteMap","fmSortBy") 2 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 [CPVar (0,"p"),CPVar (1,"l")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","keysFM")) (CApply (CApply (CSymbol ("FiniteMap","listToFM")) (CVar (0,"p"))) (CApply (CApply (CSymbol ("Prelude","zip")) (CVar (1,"l"))) (CApply (CSymbol ("Prelude","repeat")) (CSymbol ("Prelude","()"))))))] []]), CFunc ("FiniteMap","fmToList") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM")) (CLambda [CPVar (1,"key"),CPVar (2,"elt"),CPVar (3,"rest")] (CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"key"))) (CVar (2,"elt")))) (CVar (3,"rest"))))) (CSymbol ("Prelude","[]"))) (CVar (0,"fm")))] []]), CFunc ("FiniteMap","fmToListPreOrder") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"_"),CPVar (1,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","pre")) (CVar (1,"fm"))) (CSymbol ("Prelude","[]")))] [CLocalFunc (CFunc ("FiniteMap","pre") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]))) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") [],CPVar (2,"xs")] [(CSymbol ("Prelude","success"),CVar (2,"xs"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (3,"k"),CPVar (4,"x"),CPVar (5,"_"),CPVar (6,"l"),CPVar (7,"r")],CPVar (8,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",":")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (3,"k"))) (CVar (4,"x")))) (CApply (CApply (CSymbol ("FiniteMap","pre")) (CVar (6,"l"))) (CApply (CApply (CSymbol ("FiniteMap","pre")) (CVar (7,"r"))) (CVar (8,"xs")))))] []]))]]), CFunc ("FiniteMap","foldFM") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CTVar (2,"c"))))) (CFuncType (CTVar (2,"c")) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTVar (2,"c"))))) (CRules CFlex [CRule [CPVar (0,"k"),CPVar (1,"z"),CPComb ("FiniteMap","FM") [CPVar (2,"le"),CPVar (3,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM'")) (CVar (2,"le"))) (CVar (0,"k"))) (CVar (1,"z"))) (CVar (3,"fm")))] []]), CFunc ("FiniteMap","foldFM'") 4 Private (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CFuncType (CTVar (3,"d")) (CTVar (3,"d"))))) (CFuncType (CTVar (3,"d")) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (1,"b"),CTVar (2,"c")]) (CTVar (3,"d")))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"z"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CVar (2,"z"))] [],CRule [CPVar (3,"le"),CPVar (4,"k"),CPVar (5,"z"),CPComb ("FiniteMap","Branch") [CPVar (6,"key"),CPVar (7,"elt"),CPVar (8,"_"),CPVar (9,"fm_l"),CPVar (10,"fm_r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM'")) (CVar (3,"le"))) (CVar (4,"k"))) (CApply (CApply (CApply (CVar (4,"k")) (CVar (6,"key"))) (CVar (7,"elt"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM'")) (CVar (3,"le"))) (CVar (4,"k"))) (CVar (5,"z"))) (CVar (10,"fm_r"))))) (CVar (9,"fm_l")))] []]), CFunc ("FiniteMap","glueBal") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm1"),CPVar (2,"fm2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (1,"fm1")))) (CVar (2,"fm2"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (2,"fm2")))) (CVar (1,"fm1"))) (CLetDecl [CLocalPat (CPComb ("Prelude","(,)") [CPVar (3,"mid_key1"),CPVar (4,"mid_elt1")]) (CApply (CSymbol ("FiniteMap","findMax")) (CVar (1,"fm1"))) [],CLocalPat (CPComb ("Prelude","(,)") [CPVar (5,"mid_key2"),CPVar (6,"mid_elt2")]) (CApply (CSymbol ("FiniteMap","findMin")) (CVar (2,"fm2"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude",">")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (2,"fm2")))) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (1,"fm1"))))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (5,"mid_key2"))) (CVar (6,"mid_elt2"))) (CVar (1,"fm1"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMin")) (CVar (0,"le"))) (CVar (2,"fm2"))))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"mid_key1"))) (CVar (4,"mid_elt1"))) (CApply (CApply (CSymbol ("FiniteMap","deleteMax")) (CVar (0,"le"))) (CVar (1,"fm1")))) (CVar (2,"fm2")))))))] []]), CFunc ("FiniteMap","glueVBal") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm_l"),CPVar (2,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (1,"fm_l")))) (CVar (2,"fm_r"))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CSymbol ("FiniteMap","isEmptyFM'")) (CVar (2,"fm_r")))) (CVar (1,"fm_l"))) (CLetDecl [CLocalPat (CPComb ("FiniteMap","Branch") [CPVar (3,"key_l"),CPVar (4,"elt_l"),CPVar (5,"_"),CPVar (6,"fm_ll"),CPVar (7,"fm_lr")]) (CVar (1,"fm_l")) [],CLocalPat (CPComb ("FiniteMap","Branch") [CPVar (8,"key_r"),CPVar (9,"elt_r"),CPVar (10,"_"),CPVar (11,"fm_rl"),CPVar (12,"fm_rr")]) (CVar (2,"fm_r")) [],CLocalPat (CPVar (13,"size_l")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (1,"fm_l"))) [],CLocalPat (CPVar (14,"size_r")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (2,"fm_r"))) []] (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (13,"size_l")))) (CVar (14,"size_r")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (8,"key_r"))) (CVar (9,"elt_r"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (0,"le"))) (CVar (1,"fm_l"))) (CVar (11,"fm_rl")))) (CVar (12,"fm_rr")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (14,"size_r")))) (CVar (13,"size_l")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (3,"key_l"))) (CVar (4,"elt_l"))) (CVar (6,"fm_ll"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (0,"le"))) (CVar (7,"fm_lr"))) (CVar (2,"fm_r"))))) (CApply (CApply (CApply (CSymbol ("FiniteMap","glueBal")) (CVar (0,"le"))) (CVar (1,"fm_l"))) (CVar (2,"fm_r"))))))))] []]), CFunc ("FiniteMap","intersectFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le1"),CPVar (1,"fm1")],CPComb ("FiniteMap","FM") [CPVar (2,"_"),CPVar (3,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le1"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM'")) (CVar (0,"le1"))) (CVar (1,"fm1"))) (CVar (3,"fm2"))))] []]), CFunc ("FiniteMap","intersectFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (2,"c")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (2,"c")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"fm1"),CPVar (2,"fm2")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (0,"le"))) (CLambda [CPVar (3,"_"),CPVar (4,"right")] (CVar (4,"right")))) (CVar (1,"fm1"))) (CVar (2,"fm2")))] []]), CFunc ("FiniteMap","intersectFM_C") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (2,"c"),CTVar (0,"a")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (2,"c"),CTVar (0,"a")]) (CTCons ("FiniteMap","FM") [CTVar (2,"c"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le1"),CPVar (2,"fm1")],CPComb ("FiniteMap","FM") [CPVar (3,"_"),CPVar (4,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le1"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (1,"le1"))) (CVar (0,"combiner"))) (CVar (2,"fm1"))) (CVar (4,"fm2"))))] []]), CFunc ("FiniteMap","intersectFM_C'") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CTVar (3,"d")))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (2,"c")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (3,"d")]))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"_"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (3,"_"),CPVar (4,"_"),CPComb ("FiniteMap","EmptyFM") [],CPComb ("FiniteMap","Branch") [CPVar (5,"_"),CPVar (6,"_"),CPVar (7,"_"),CPVar (8,"_"),CPVar (9,"_")]] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (10,"le"),CPVar (11,"combiner"),CPComb ("FiniteMap","Branch") [CPVar (12,"split_key1"),CPVar (13,"elt1"),CPVar (14,"s1"),CPVar (15,"left1"),CPVar (16,"right1")],CPComb ("FiniteMap","Branch") [CPVar (17,"split_key"),CPVar (18,"elt2"),CPVar (19,"_"),CPVar (20,"left"),CPVar (21,"right")]] [(CApply (CSymbol ("Maybe","isJust")) (CVar (25,"maybe_elt1")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (10,"le"))) (CVar (17,"split_key"))) (CApply (CApply (CVar (11,"combiner")) (CVar (26,"elt1'"))) (CVar (18,"elt2")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (23,"lts"))) (CVar (20,"left")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (24,"gts"))) (CVar (21,"right")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (10,"le"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (23,"lts"))) (CVar (20,"left")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","intersectFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (24,"gts"))) (CVar (21,"right"))))] [CLocalPat (CPVar (22,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (12,"split_key1"))) (CVar (13,"elt1"))) (CVar (14,"s1"))) (CVar (15,"left1"))) (CVar (16,"right1"))) [],CLocalPat (CPVar (23,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (24,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (25,"maybe_elt1")) (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPComb ("Prelude","Just") [CPVar (26,"elt1'")]) (CVar (25,"maybe_elt1")) []]]), CFunc ("FiniteMap","isEmptyFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","sizeFM")) (CVar (0,"fm")))) (CLit (CIntc 0)))] []]), CFunc ("FiniteMap","isEmptyFM'") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","==")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (0,"fm")))) (CLit (CIntc 0)))] []]), CFunc ("FiniteMap","isEmptySet") 0 Private (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CTCons ("Prelude","Bool") [])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","isEmptyFM"))] []]), CFunc ("FiniteMap","keyOrder") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"lt"),CPVar (1,"_")]] [(CSymbol ("Prelude","success"),CVar (0,"lt"))] []]), CFunc ("FiniteMap","keysFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"fm")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","foldFM")) (CLambda [CPVar (1,"key"),CPVar (2,"_"),CPVar (3,"rest")] (CApply (CApply (CSymbol ("Prelude",":")) (CVar (1,"key"))) (CVar (3,"rest"))))) (CSymbol ("Prelude","[]"))) (CVar (0,"fm")))] []]), CFunc ("FiniteMap","listToFM") 1 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"le")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("FiniteMap","addListToFM")) (CApply (CSymbol ("FiniteMap","emptyFM")) (CVar (0,"le"))))] []]), CFunc ("FiniteMap","lookupFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le"),CPVar (1,"fm")],CPVar (2,"key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (0,"le"))) (CVar (1,"fm"))) (CVar (2,"key")))] []]), CFunc ("FiniteMap","lookupFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"key_to_find")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"key_to_find"))) (CVar (3,"key")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"key_to_find")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"key_to_find"))) (CVar (3,"key")))) (CApply (CSymbol ("Prelude","Just")) (CVar (4,"elt")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"key_to_find")))))] []]), CFunc ("FiniteMap","lookupWithDefaultFM") 3 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"fm"),CPVar (1,"deflt"),CPVar (2,"key")] [(CSymbol ("Prelude","success"),CCase (CApply (CApply (CSymbol ("FiniteMap","lookupFM")) (CVar (0,"fm"))) (CVar (2,"key"))) [CBranch (CPComb ("Prelude","Nothing") []) (CVar (1,"deflt")),CBranch (CPComb ("Prelude","Just") [CPVar (3,"elt")]) (CVar (3,"elt"))])] []]), CFunc ("FiniteMap","mapFM") 2 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTVar (2,"c")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (2,"c")]))) (CRules CFlex [CRule [CPVar (0,"f"),CPComb ("FiniteMap","FM") [CPVar (1,"le"),CPVar (2,"fm")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","mapFM'")) (CVar (1,"le"))) (CVar (0,"f"))) (CVar (2,"fm"))))] []]), CFunc ("FiniteMap","mapFM'") 3 Private (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (2,"c")) (CTVar (3,"d")))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (1,"b"),CTVar (2,"c")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (1,"b"),CTVar (3,"d")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPVar (3,"f"),CPComb ("FiniteMap","Branch") [CPVar (4,"key"),CPVar (5,"elt"),CPVar (6,"size"),CPVar (7,"fm_l"),CPVar (8,"fm_r")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"key"))) (CApply (CApply (CVar (3,"f")) (CVar (4,"key"))) (CVar (5,"elt")))) (CVar (6,"size"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","mapFM'")) (CVar (2,"le"))) (CVar (3,"f"))) (CVar (7,"fm_l")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","mapFM'")) (CVar (2,"le"))) (CVar (3,"f"))) (CVar (8,"fm_r"))))] []]), CFunc ("FiniteMap","maxFM") 0 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FiniteMap","max"))) (CSymbol ("FiniteMap","tree")))] [CLocalFunc (CFunc ("FiniteMap","max") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"k"),CPVar (1,"x"),CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"r")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (4,"r"))) (CSymbol ("FiniteMap","EmptyFM")),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CVar (1,"x")))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("FiniteMap","max")) (CVar (4,"r")))] []]))]]), CFunc ("FiniteMap","minFM") 0 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("FiniteMap","min"))) (CSymbol ("FiniteMap","tree")))] [CLocalFunc (CFunc ("FiniteMap","min") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]])) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("Prelude","Nothing"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"k"),CPVar (1,"x"),CPVar (2,"_"),CPVar (3,"l"),CPVar (4,"_")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (3,"l"))) (CSymbol ("FiniteMap","EmptyFM")),CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (0,"k"))) (CVar (1,"x")))),(CSymbol ("Prelude","otherwise"),CApply (CSymbol ("FiniteMap","min")) (CVar (3,"l")))] []]))]]), CFunc ("FiniteMap","minusFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le1"),CPVar (1,"fm1")],CPComb ("FiniteMap","FM") [CPVar (2,"_"),CPVar (3,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le1"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","minusFM'")) (CVar (0,"le1"))) (CVar (1,"fm1"))) (CVar (3,"fm2"))))] []]), CFunc ("FiniteMap","minusFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (2,"c")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"_"),CPComb ("FiniteMap","Branch") [CPVar (3,"split_key1"),CPVar (4,"elt1"),CPVar (5,"s1"),CPVar (6,"left1"),CPVar (7,"right1")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (3,"split_key1"))) (CVar (4,"elt1"))) (CVar (5,"s1"))) (CVar (6,"left1"))) (CVar (7,"right1")))] [],CRule [CPVar (8,"le"),CPComb ("FiniteMap","Branch") [CPVar (9,"split_key1"),CPVar (10,"elt1"),CPVar (11,"s1"),CPVar (12,"left1"),CPVar (13,"right1")],CPComb ("FiniteMap","Branch") [CPVar (14,"split_key"),CPVar (15,"_"),CPVar (16,"_"),CPVar (17,"left"),CPVar (18,"right")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("FiniteMap","glueVBal")) (CVar (8,"le"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","minusFM'")) (CVar (8,"le"))) (CVar (20,"lts"))) (CVar (17,"left")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","minusFM'")) (CVar (8,"le"))) (CVar (21,"gts"))) (CVar (18,"right"))))] [CLocalPat (CPVar (19,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (9,"split_key1"))) (CVar (10,"elt1"))) (CVar (11,"s1"))) (CVar (12,"left1"))) (CVar (13,"right1"))) [],CLocalPat (CPVar (20,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) [],CLocalPat (CPVar (21,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) []]]), CFunc ("FiniteMap","minusSet") 0 Private (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","minusFM"))] []]), CFunc ("FiniteMap","mkBalBranch") 4 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"elt"),CPVar (2,"fm_L"),CPVar (3,"fm_R")] [(CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"size_l"))) (CVar (5,"size_r")))) (CLit (CIntc 2)),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 1))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (2,"fm_L"))) (CVar (3,"fm_R"))),(CApply (CApply (CSymbol ("Prelude",">")) (CVar (5,"size_r"))) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (4,"size_l"))),CCase (CVar (3,"fm_R")) [CBranch (CPComb ("FiniteMap","Branch") [CPVar (6,"_"),CPVar (7,"_"),CPVar (8,"_"),CPVar (9,"fm_rl"),CPVar (10,"fm_rr")]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (9,"fm_rl")))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (10,"fm_rr")))))) (CApply (CApply (CSymbol ("FiniteMap","single_L")) (CVar (2,"fm_L"))) (CVar (3,"fm_R")))) (CApply (CApply (CSymbol ("FiniteMap","double_L")) (CVar (2,"fm_L"))) (CVar (3,"fm_R"))))]),(CApply (CApply (CSymbol ("Prelude",">")) (CVar (4,"size_l"))) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (5,"size_r"))),CCase (CVar (2,"fm_L")) [CBranch (CPComb ("FiniteMap","Branch") [CPVar (11,"_"),CPVar (12,"_"),CPVar (13,"_"),CPVar (14,"fm_ll"),CPVar (15,"fm_lr")]) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","<")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (15,"fm_lr")))) (CApply (CApply (CSymbol ("Prelude","*")) (CLit (CIntc 2))) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (14,"fm_ll")))))) (CApply (CApply (CSymbol ("FiniteMap","single_R")) (CVar (2,"fm_L"))) (CVar (3,"fm_R")))) (CApply (CApply (CSymbol ("FiniteMap","double_R")) (CVar (2,"fm_L"))) (CVar (3,"fm_R"))))]),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 2))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (2,"fm_L"))) (CVar (3,"fm_R")))] [CLocalPat (CPVar (4,"size_l")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (2,"fm_L"))) [],CLocalPat (CPVar (5,"size_r")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (3,"fm_R"))) [],CLocalFunc (CFunc ("FiniteMap","single_L") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]))) (CRules CFlex [CRule [CPVar (6,"fm_l"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_r"),CPVar (8,"elt_r"),CPVar (9,"_"),CPVar (10,"fm_rl"),CPVar (11,"fm_rr")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 3))) (CVar (7,"key_r"))) (CVar (8,"elt_r"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 4))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (6,"fm_l"))) (CVar (10,"fm_rl")))) (CVar (11,"fm_rr")))] []])),CLocalFunc (CFunc ("FiniteMap","double_L") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]))) (CRules CFlex [CRule [CPVar (6,"fm_l"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_r"),CPVar (8,"elt_r"),CPVar (9,"_"),CPComb ("FiniteMap","Branch") [CPVar (10,"key_rl"),CPVar (11,"elt_rl"),CPVar (12,"_"),CPVar (13,"fm_rll"),CPVar (14,"fm_rlr")],CPVar (15,"fm_rr")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 5))) (CVar (10,"key_rl"))) (CVar (11,"elt_rl"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 6))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (6,"fm_l"))) (CVar (13,"fm_rll")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 7))) (CVar (7,"key_r"))) (CVar (8,"elt_r"))) (CVar (14,"fm_rlr"))) (CVar (15,"fm_rr"))))] []])),CLocalFunc (CFunc ("FiniteMap","single_R") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (6,"key_l"),CPVar (7,"elt_l"),CPVar (8,"_"),CPVar (9,"fm_ll"),CPVar (10,"fm_lr")],CPVar (11,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 8))) (CVar (6,"key_l"))) (CVar (7,"elt_l"))) (CVar (9,"fm_ll"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 9))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (10,"fm_lr"))) (CVar (11,"fm_r"))))] []])),CLocalFunc (CFunc ("FiniteMap","double_R") 2 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_169"),CTVar (3,"_170")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","Branch") [CPVar (6,"key_l"),CPVar (7,"elt_l"),CPVar (8,"_"),CPVar (9,"fm_ll"),CPComb ("FiniteMap","Branch") [CPVar (10,"key_lr"),CPVar (11,"elt_lr"),CPVar (12,"_"),CPVar (13,"fm_lrl"),CPVar (14,"fm_lrr")]],CPVar (15,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 10))) (CVar (10,"key_lr"))) (CVar (11,"elt_lr"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 11))) (CVar (6,"key_l"))) (CVar (7,"elt_l"))) (CVar (9,"fm_ll"))) (CVar (13,"fm_lrl")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 12))) (CVar (0,"key"))) (CVar (1,"elt"))) (CVar (14,"fm_lrr"))) (CVar (15,"fm_r"))))] []]))]]), CFunc ("FiniteMap","mkBranch") 5 Private (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"key"),CPVar (2,"elt"),CPVar (3,"fm_l"),CPVar (4,"fm_r")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (7,"result")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (1,"key"))) (CVar (2,"elt"))) (CApply (CSymbol ("FiniteMap","unbox")) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CLit (CIntc 1))) (CVar (5,"left_size")))) (CVar (6,"right_size"))))) (CVar (3,"fm_l"))) (CVar (4,"fm_r"))) []] (CVar (7,"result")))] [CLocalPat (CPVar (5,"left_size")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (3,"fm_l"))) [],CLocalPat (CPVar (6,"right_size")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (4,"fm_r"))) [],CLocalFunc (CFunc ("FiniteMap","unbox") 1 Private (CFuncType (CTCons ("Prelude","Int") []) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPVar (7,"x")] [(CSymbol ("Prelude","success"),CVar (7,"x"))] []]))]]), CFunc ("FiniteMap","mkSet") 2 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("Prelude","[]") [CTVar (0,"a")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"xs")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","listToFM")) (CVar (0,"le"))) (CListComp (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (2,"x"))) (CSymbol ("Prelude","()"))) [CSPat (CPVar (2,"x")) (CVar (1,"xs"))]))] []]), CFunc ("FiniteMap","mkVBalBranch") 5 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"key"),CPVar (2,"elt"),CPComb ("FiniteMap","EmptyFM") [],CPVar (3,"fm_r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM'")) (CVar (0,"le"))) (CVar (3,"fm_r"))) (CVar (1,"key"))) (CVar (2,"elt")))] [],CRule [CPVar (4,"le"),CPVar (5,"key"),CPVar (6,"elt"),CPComb ("FiniteMap","Branch") [CPVar (7,"key_l"),CPVar (8,"elt_l"),CPVar (9,"s_l"),CPVar (10,"fm_ll"),CPVar (11,"fm_lr")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","addToFM'")) (CVar (4,"le"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (7,"key_l"))) (CVar (8,"elt_l"))) (CVar (9,"s_l"))) (CVar (10,"fm_ll"))) (CVar (11,"fm_lr")))) (CVar (5,"key"))) (CVar (6,"elt")))] [],CRule [CPVar (12,"le"),CPVar (13,"key"),CPVar (14,"elt"),CPComb ("FiniteMap","Branch") [CPVar (15,"key_l"),CPVar (16,"elt_l"),CPVar (17,"s_l"),CPVar (18,"fm_ll"),CPVar (19,"fm_lr")],CPComb ("FiniteMap","Branch") [CPVar (20,"key_r"),CPVar (21,"elt_r"),CPVar (22,"s_r"),CPVar (23,"fm_rl"),CPVar (24,"fm_rr")]] [(CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (27,"size_l")))) (CVar (28,"size_r")),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (20,"key_r"))) (CVar (21,"elt_r"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (12,"le"))) (CVar (13,"key"))) (CVar (14,"elt"))) (CVar (25,"fm_l"))) (CVar (23,"fm_rl")))) (CVar (24,"fm_rr"))),(CApply (CApply (CSymbol ("Prelude","<")) (CApply (CApply (CSymbol ("Prelude","*")) (CSymbol ("FiniteMap","sIZE_RATIO"))) (CVar (28,"size_r")))) (CVar (27,"size_l")),CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBalBranch")) (CVar (15,"key_l"))) (CVar (16,"elt_l"))) (CVar (18,"fm_ll"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (12,"le"))) (CVar (13,"key"))) (CVar (14,"elt"))) (CVar (19,"fm_lr"))) (CVar (26,"fm_r")))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkBranch")) (CLit (CIntc 13))) (CVar (13,"key"))) (CVar (14,"elt"))) (CVar (25,"fm_l"))) (CVar (26,"fm_r")))] [CLocalPat (CPVar (25,"fm_l")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (15,"key_l"))) (CVar (16,"elt_l"))) (CVar (17,"s_l"))) (CVar (18,"fm_ll"))) (CVar (19,"fm_lr"))) [],CLocalPat (CPVar (26,"fm_r")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (20,"key_r"))) (CVar (21,"elt_r"))) (CVar (22,"s_r"))) (CVar (23,"fm_rl"))) (CVar (24,"fm_rr"))) [],CLocalPat (CPVar (27,"size_l")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (25,"fm_l"))) [],CLocalPat (CPVar (28,"size_r")) (CApply (CSymbol ("FiniteMap","sizeFM'")) (CVar (26,"fm_r"))) []]]), CFunc ("FiniteMap","plusFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"le1"),CPVar (1,"fm1")],CPComb ("FiniteMap","FM") [CPVar (2,"_"),CPVar (3,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le1"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM'")) (CVar (0,"le1"))) (CVar (1,"fm1"))) (CVar (3,"fm2"))))] []]), CFunc ("FiniteMap","plusFM'") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"fm2")] [(CSymbol ("Prelude","success"),CVar (1,"fm2"))] [],CRule [CPVar (2,"_"),CPComb ("FiniteMap","Branch") [CPVar (3,"split_key1"),CPVar (4,"elt1"),CPVar (5,"s1"),CPVar (6,"left1"),CPVar (7,"right1")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (3,"split_key1"))) (CVar (4,"elt1"))) (CVar (5,"s1"))) (CVar (6,"left1"))) (CVar (7,"right1")))] [],CRule [CPVar (8,"le"),CPComb ("FiniteMap","Branch") [CPVar (9,"split_key1"),CPVar (10,"elt1"),CPVar (11,"s1"),CPVar (12,"left1"),CPVar (13,"right1")],CPComb ("FiniteMap","Branch") [CPVar (14,"split_key"),CPVar (15,"elt2"),CPVar (16,"_"),CPVar (17,"left"),CPVar (18,"right")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (8,"le"))) (CVar (14,"split_key"))) (CVar (15,"elt2"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM'")) (CVar (8,"le"))) (CVar (20,"lts"))) (CVar (17,"left")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM'")) (CVar (8,"le"))) (CVar (21,"gts"))) (CVar (18,"right"))))] [CLocalPat (CPVar (19,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (9,"split_key1"))) (CVar (10,"elt1"))) (CVar (11,"s1"))) (CVar (12,"left1"))) (CVar (13,"right1"))) [],CLocalPat (CPVar (20,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) [],CLocalPat (CPVar (21,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (8,"le"))) (CVar (19,"fm1"))) (CVar (14,"split_key"))) []]]), CFunc ("FiniteMap","plusFM_C") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")]) (CTCons ("FiniteMap","FM") [CTVar (1,"b"),CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"combiner"),CPComb ("FiniteMap","FM") [CPVar (1,"le1"),CPVar (2,"fm1")],CPComb ("FiniteMap","FM") [CPVar (3,"_"),CPVar (4,"fm2")]] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (1,"le1"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM_C'")) (CVar (1,"le1"))) (CVar (0,"combiner"))) (CVar (2,"fm1"))) (CVar (4,"fm2"))))] []]), CFunc ("FiniteMap","plusFM_C'") 4 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CFuncType (CTVar (1,"b")) (CFuncType (CTVar (1,"b")) (CTVar (1,"b")))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"_"),CPVar (1,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (2,"fm2")] [(CSymbol ("Prelude","success"),CVar (2,"fm2"))] [],CRule [CPVar (3,"_"),CPVar (4,"_"),CPComb ("FiniteMap","Branch") [CPVar (5,"split_key1"),CPVar (6,"elt1"),CPVar (7,"s1"),CPVar (8,"left1"),CPVar (9,"right1")],CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (5,"split_key1"))) (CVar (6,"elt1"))) (CVar (7,"s1"))) (CVar (8,"left1"))) (CVar (9,"right1")))] [],CRule [CPVar (10,"le"),CPVar (11,"combiner"),CPComb ("FiniteMap","Branch") [CPVar (12,"split_key1"),CPVar (13,"elt1"),CPVar (14,"s1"),CPVar (15,"left1"),CPVar (16,"right1")],CPComb ("FiniteMap","Branch") [CPVar (17,"split_key"),CPVar (18,"elt2"),CPVar (19,"_"),CPVar (20,"left"),CPVar (21,"right")]] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (10,"le"))) (CVar (17,"split_key"))) (CVar (25,"new_elt"))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (23,"lts"))) (CVar (20,"left")))) (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","plusFM_C'")) (CVar (10,"le"))) (CVar (11,"combiner"))) (CVar (24,"gts"))) (CVar (21,"right"))))] [CLocalPat (CPVar (22,"fm1")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (12,"split_key1"))) (CVar (13,"elt1"))) (CVar (14,"s1"))) (CVar (15,"left1"))) (CVar (16,"right1"))) [],CLocalPat (CPVar (23,"lts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (24,"gts")) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [],CLocalPat (CPVar (25,"new_elt")) (CCase (CApply (CApply (CApply (CSymbol ("FiniteMap","lookupFM'")) (CVar (10,"le"))) (CVar (22,"fm1"))) (CVar (17,"split_key"))) [CBranch (CPComb ("Prelude","Nothing") []) (CVar (18,"elt2")),CBranch (CPComb ("Prelude","Just") [CPVar (26,"elt1'")]) (CApply (CApply (CVar (11,"combiner")) (CVar (26,"elt1'"))) (CVar (18,"elt2")))]) []]]), CFunc ("FiniteMap","sIZE_RATIO") 0 Private (CTCons ("Prelude","Int") []) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CLit (CIntc 5))] []]), CFunc ("FiniteMap","setToList") 0 Private (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CTCons ("Prelude","[]") [CTVar (0,"a")])) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","keysFM"))] []]), CFunc ("FiniteMap","sizeFM") 1 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") []]] [(CSymbol ("Prelude","success"),CLit (CIntc 0))] [],CRule [CPComb ("FiniteMap","FM") [CPVar (1,"_"),CPComb ("FiniteMap","Branch") [CPVar (2,"_"),CPVar (3,"_"),CPVar (4,"size"),CPVar (5,"_"),CPVar (6,"_")]]] [(CSymbol ("Prelude","success"),CVar (4,"size"))] []]), CFunc ("FiniteMap","sizeFM'") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("Prelude","Int") [])) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CLit (CIntc 0))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (0,"_"),CPVar (1,"_"),CPVar (2,"size"),CPVar (3,"_"),CPVar (4,"_")]] [(CSymbol ("Prelude","success"),CVar (2,"size"))] []]), CFunc ("FiniteMap","splitFM") 2 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Maybe") [CTCons ("Prelude","(,)") [CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")],CTCons ("Prelude","(,)") [CTVar (0,"a"),CTVar (1,"b")]]]))) (CRules CFlex [CRule [CPVar (0,"g"),CPVar (1,"v")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","maybe")) (CSymbol ("Prelude","Nothing"))) (CLambda [CPVar (2,"x")] (CApply (CSymbol ("Prelude","Just")) (CApply (CApply (CSymbol ("Prelude","(,)")) (CApply (CApply (CSymbol ("FiniteMap","delFromFM")) (CVar (0,"g"))) (CVar (1,"v")))) (CApply (CApply (CSymbol ("Prelude","(,)")) (CVar (1,"v"))) (CVar (2,"x"))))))) (CApply (CApply (CSymbol ("FiniteMap","lookupFM")) (CVar (0,"g"))) (CVar (1,"v"))))] []]), CFunc ("FiniteMap","splitGT") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"split_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (2,"le"))) (CVar (3,"key"))) (CVar (4,"elt"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"split_key")))) (CVar (7,"fm_r")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CVar (7,"fm_r"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitGT")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"split_key")))))] []]), CFunc ("FiniteMap","splitLT") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"_"),CPComb ("FiniteMap","EmptyFM") [],CPVar (1,"_")] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPVar (2,"le"),CPComb ("FiniteMap","Branch") [CPVar (3,"key"),CPVar (4,"elt"),CPVar (5,"_"),CPVar (6,"fm_l"),CPVar (7,"fm_r")],CPVar (8,"split_key")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CVar (2,"le")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (2,"le"))) (CVar (6,"fm_l"))) (CVar (8,"split_key")))) (CApply (CApply (CApply (CSymbol ("Prelude","if_then_else")) (CApply (CApply (CSymbol ("Prelude","==")) (CVar (8,"split_key"))) (CVar (3,"key")))) (CVar (6,"fm_l"))) (CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","mkVBalBranch")) (CVar (2,"le"))) (CVar (3,"key"))) (CVar (4,"elt"))) (CVar (6,"fm_l"))) (CApply (CApply (CApply (CSymbol ("FiniteMap","splitLT")) (CVar (2,"le"))) (CVar (7,"fm_r"))) (CVar (8,"split_key"))))))] []]), CFunc ("FiniteMap","toGT") 3 Private (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") [])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"x"),CPVar (2,"y")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","&&")) (CApply (CSymbol ("Prelude","not")) (CApply (CApply (CVar (0,"le")) (CVar (1,"x"))) (CVar (2,"y"))))) (CApply (CApply (CSymbol ("Prelude","/=")) (CVar (1,"x"))) (CVar (2,"y"))))] []]), CFunc ("FiniteMap","tree") 1 Private (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")])) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"_"),CPVar (1,"fm")]] [(CSymbol ("Prelude","success"),CVar (1,"fm"))] []]), CFunc ("FiniteMap","union") 0 Private (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTCons ("Prelude","()") []]))) (CRules CFlex [CRule [] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","plusFM"))] []]), CFunc ("FiniteMap","unitFM") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","Bool") []))) (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPVar (0,"le"),CPVar (1,"key"),CPVar (2,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"le"))) (CApply (CApply (CSymbol ("FiniteMap","unitFM'")) (CVar (1,"key"))) (CVar (2,"elt"))))] []]), CFunc ("FiniteMap","unitFM'") 2 Private (CFuncType (CTVar (0,"a")) (CFuncType (CTVar (1,"b")) (CTCons ("FiniteMap","FiniteMap") [CTVar (0,"a"),CTVar (1,"b")]))) (CRules CFlex [CRule [CPVar (0,"key"),CPVar (1,"elt")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (0,"key"))) (CVar (1,"elt"))) (CLit (CIntc 1))) (CSymbol ("FiniteMap","EmptyFM"))) (CSymbol ("FiniteMap","EmptyFM")))] []]), CFunc ("FiniteMap","updFM") 3 Public (CFuncType (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")]) (CFuncType (CTVar (0,"a")) (CFuncType (CFuncType (CTVar (1,"b")) (CTVar (1,"b"))) (CTCons ("FiniteMap","FM") [CTVar (0,"a"),CTVar (1,"b")])))) (CRules CFlex [CRule [CPComb ("FiniteMap","FM") [CPVar (0,"lt"),CPVar (1,"fm")],CPVar (2,"i"),CPVar (3,"f")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("FiniteMap","FM")) (CVar (0,"lt"))) (CApply (CSymbol ("FiniteMap","upd")) (CVar (1,"fm"))))] [CLocalFunc (CFunc ("FiniteMap","upd") 1 Private (CFuncType (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_535"),CTVar (3,"_523")]) (CTCons ("FiniteMap","FiniteMap") [CTVar (2,"_535"),CTVar (3,"_523")])) (CRules CFlex [CRule [CPComb ("FiniteMap","EmptyFM") []] [(CSymbol ("Prelude","success"),CSymbol ("FiniteMap","EmptyFM"))] [],CRule [CPComb ("FiniteMap","Branch") [CPVar (4,"k"),CPVar (5,"x"),CPVar (6,"h"),CPVar (7,"l"),CPVar (8,"r")]] [(CApply (CApply (CSymbol ("Prelude","==")) (CVar (2,"i"))) (CVar (4,"k")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"k"))) (CApply (CVar (3,"f")) (CVar (5,"x")))) (CVar (6,"h"))) (CVar (7,"l"))) (CVar (8,"r"))),(CApply (CApply (CVar (0,"lt")) (CVar (2,"i"))) (CVar (4,"k")),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"k"))) (CVar (5,"x"))) (CVar (6,"h"))) (CApply (CSymbol ("FiniteMap","upd")) (CVar (7,"l")))) (CVar (8,"r"))),(CSymbol ("Prelude","otherwise"),CApply (CApply (CApply (CApply (CApply (CSymbol ("FiniteMap","Branch")) (CVar (4,"k"))) (CVar (5,"x"))) (CVar (6,"h"))) (CVar (7,"l"))) (CApply (CSymbol ("FiniteMap","upd")) (CVar (8,"r"))))] []]))]])] []