Prog "List" ["Maybe","Prelude"] [] [Func ("List","elemIndex") 1 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","Int") []]))) (Rule [1] (Comb FuncCall ("List","findIndex") [Comb (FuncPartCall 1) ("Prelude","==") [Var 1]])),Func ("List","elemIndices") 1 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1] (Comb (FuncPartCall 1) ("List","findIndices") [Comb (FuncPartCall 1) ("Prelude","==") [Var 1]])),Func ("List","find") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TVar 0]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Maybe","listToMaybe") [],Comb (FuncPartCall 1) ("Prelude","filter") [Var 1]])),Func ("List","findIndex") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Maybe") [TCons ("Prelude","Int") []]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Maybe","listToMaybe") [],Comb (FuncPartCall 1) ("List","findIndices") [Var 1]])),Func ("List","findIndices") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("List","findIndices._#lambda4") [Var 1],Comb ConsCall ("Prelude","[]") [],Comb FuncCall ("Prelude","zip") [Var 2,Comb FuncCall ("Prelude","enumFrom") [Lit (Intc 0)]]])),Func ("List","findIndices._#lambda4") 3 Private (FuncType (FuncType (TVar 7) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","(,)") [TVar 7,TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])))) (Rule [1,2,3] (Case Rigid (Var 2) [Branch (Pattern ("Prelude","(,)") [4,5]) (Comb FuncCall ("Prelude","++") [Case Rigid (Comb FuncCall ("Prelude","apply") [Var 1,Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","[]") [])],Var 3])])),Func ("List","nub") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])) (Rule [1] (Comb FuncCall ("List","nubBy") [Comb (FuncPartCall 2) ("Prelude","==") [],Var 1])),Func ("List","nubBy") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("List","nubBy") [Var 1,Comb FuncCall ("Prelude","filter") [Comb (FuncPartCall 1) ("List","nubBy._#lambda6") [Var 1,Var 3],Var 4]]])])),Func ("List","nubBy._#lambda6") 3 Private (FuncType (FuncType (TVar 45) (FuncType (TVar 45) (TCons ("Prelude","Bool") []))) (FuncType (TVar 45) (FuncType (TVar 45) (TCons ("Prelude","Bool") [])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","not") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Var 3]])),Func ("List","delete") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case Rigid (Comb FuncCall ("Prelude","==") [Var 1,Var 3]) [Branch (Pattern ("Prelude","True") []) (Var 4),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("List","delete") [Var 1,Var 4]])])])),Func ("List","\\\\") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldl") [Comb (FuncPartCall 2) ("Prelude","flip") [Comb (FuncPartCall 2) ("List","delete") []],Var 1,Var 2])),Func ("List","union") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [3,4]) (Case Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 3],Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("List","union") [Var 4,Var 2]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("List","union") [Var 4,Var 2]])])])),Func ("List","intersect") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 3],Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb FuncCall ("List","intersect") [Var 4,Var 2]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("List","intersect") [Var 4,Var 2])])])),Func ("List","intersperse") 2 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Case Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Case Flex (Var 4) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [5,6]) (Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude",":") [Var 1,Comb FuncCall ("List","intersperse") [Var 1,Comb ConsCall ("Prelude",":") [Var 5,Var 6]]]])])])),Func ("List","transpose") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [2,3]) (Case Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("List","transpose") [Var 3]),Branch (Pattern ("Prelude",":") [4,5]) (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","head") [],Var 3]],Comb FuncCall ("List","transpose") [Comb ConsCall ("Prelude",":") [Var 5,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","tail") [],Var 3]]]])])])),Func ("List","partition") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],TCons ("Prelude","[]") [TVar 0]]))) (Rule [1,2] (Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("List","partition.select.53") [Var 1],Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []],Var 2])),Func ("List","partition.select.53") 3 Private (FuncType (FuncType (TVar 146) (TCons ("Prelude","Bool") [])) (FuncType (TVar 146) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 146],TCons ("Prelude","[]") [TVar 146]]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 146],TCons ("Prelude","[]") [TVar 146]])))) (Rule [1,2,3] (Case Flex (Var 3) [Branch (Pattern ("Prelude","(,)") [4,5]) (Case Rigid (Comb FuncCall ("Prelude","apply") [Var 1,Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Var 2,Var 4],Var 5]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude","(,)") [Var 4,Comb ConsCall ("Prelude",":") [Var 2,Var 5]])])])),Func ("List","group") 0 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]])) (Rule [] (Comb (FuncPartCall 1) ("List","groupBy") [Comb (FuncPartCall 2) ("Prelude","==") []])),Func ("List","groupBy") 2 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TVar 0]]))) (Rule [1,2] (Case Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [3,4]) (Let [(5,Comb FuncCall ("Prelude","span") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 4])] (Let [(6,Comb FuncCall ("List","groupBy._#selFP3#ys") [Var 5])] (Let [(7,Comb FuncCall ("List","groupBy._#selFP4#zs") [Var 5])] (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Var 3,Var 6],Comb FuncCall ("List","groupBy") [Var 1,Var 7]]))))])),Func ("List","groupBy._#selFP3#ys") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 154],TCons ("Prelude","[]") [TVar 154]]) (TCons ("Prelude","[]") [TVar 154])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("List","groupBy._#selFP4#zs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 154],TCons ("Prelude","[]") [TVar 154]]) (TCons ("Prelude","[]") [TVar 154])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("List","replace") 3 Public (FuncType (TVar 0) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2,3] (Case Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [4,5]) (Case Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Intc 0)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 1,Var 5]),Branch (Pattern ("Prelude","False") []) (Case Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("List","replace") [Var 1,Comb FuncCall ("Prelude","-") [Var 2,Lit (Intc 1)],Var 5]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])),Func ("List","isPrefixOf") 2 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Case Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","True") []),Branch (Pattern ("Prelude",":") [3,4]) (Case Flex (Var 2) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("Prelude",":") [5,6]) (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Var 3,Var 5],Comb FuncCall ("List","isPrefixOf") [Var 4,Var 6]])])])),Func ("List","sortBy") 1 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1] (Comb (FuncPartCall 1) ("Prelude","foldr") [Comb (FuncPartCall 2) ("List","insertBy") [Var 1],Comb ConsCall ("Prelude","[]") []])),Func ("List","insertBy") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2,3] (Case Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [4,5]) (Case Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Var 4]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude",":") [Var 4,Var 5]]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("List","insertBy") [Var 1,Var 2,Var 5]])])])),Func ("List","last") 1 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude",":") [2,3]) (Case Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Var 2),Branch (Pattern ("Prelude",":") [4,5]) (Comb FuncCall ("List","last") [Comb ConsCall ("Prelude",":") [Var 4,Var 5]])])]))] [Op ("List","\\\\") InfixOp 5]