Prog "Traversal" ["Prelude"] [TypeSyn ("Traversal","Traversable") Public [0,1] (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])),TypeSyn ("Traversal","FunList") Private [0] (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0]))] [Func ("Traversal","noChildren") 1 Public (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (Rule [1] (Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude","[]") [],Comb (FuncPartCall 1) ("Prelude","const") [Var 1]])),Func ("Traversal","children") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 1]))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","fst") [],Var 1])),Func ("Traversal","replaceChildren") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","snd") [],Var 1])),Func ("Traversal","mapChildren") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","replaceChildren") [Var 1],Var 3],Comb FuncCall ("Prelude","map") [Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","children") [Var 1],Var 3]]])),Func ("Traversal","family") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 0]))) (Rule [1,2] (Comb FuncCall ("Traversal","familyFL") [Var 1,Var 2,Comb ConsCall ("Prelude","[]") []])),Func ("Traversal","childFamilies") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (TVar 0) (TCons ("Prelude","[]") [TVar 1])))) (Rule [1,2,3] (Comb FuncCall ("Traversal","childFamiliesFL") [Var 1,Var 2,Var 3,Comb ConsCall ("Prelude","[]") []])),Func ("Traversal","mapFamily") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","mapChildFamilies") [Var 1,Var 1],Var 2]])),Func ("Traversal","mapChildFamilies") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TVar 1)) (FuncType (TVar 0) (TVar 0))))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Traversal","mapChildren") [Var 1],Comb (FuncPartCall 1) ("Traversal","mapFamily") [Var 2]])),Func ("Traversal","evalFamily") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","Maybe") [TVar 0])) (FuncType (TVar 0) (TVar 0)))) (Rule [1,2] (Comb FuncCall ("Traversal","mapFamily") [Var 1,Comb (FuncPartCall 1) ("Traversal","evalFamily.g.19") [Var 2,Var 1]])),Func ("Traversal","evalFamily.g.19") 3 Private (FuncType (FuncType (TVar 100) (TCons ("Prelude","Maybe") [TVar 100])) (FuncType (FuncType (TVar 100) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 100],FuncType (TCons ("Prelude","[]") [TVar 100]) (TVar 100)])) (FuncType (TVar 100) (TVar 100)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","maybe") [Var 3,Comb FuncCall ("Traversal","mapFamily") [Var 2,Comb (FuncPartCall 1) ("Traversal","evalFamily.g.19") [Var 1,Var 2]],Comb FuncCall ("Prelude","apply") [Var 1,Var 3]])),Func ("Traversal","evalChildFamilies") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","Maybe") [TVar 1])) (FuncType (TVar 0) (TVar 0))))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Traversal","mapChildren") [Var 1],Comb (FuncPartCall 1) ("Traversal","evalFamily") [Var 2]])),Func ("Traversal","fold") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1))) (FuncType (TVar 0) (TVar 1)))) (Rule [1,2] (Comb (FuncPartCall 1) ("Traversal","foldChildren") [Var 1,Var 1,Var 2,Var 2])),Func ("Traversal","foldChildren") 5 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TVar 3))) (FuncType (FuncType (TVar 1) (FuncType (TCons ("Prelude","[]") [TVar 2]) (TVar 2))) (FuncType (TVar 0) (TVar 3)))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 3,Var 5],Comb FuncCall ("Prelude","map") [Comb FuncCall ("Traversal","fold") [Var 2,Var 4],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","children") [Var 1],Var 5]]])),Func ("Traversal","replaceChildrenIO") 1 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TVar 1]]) (TCons ("Prelude","IO") [TVar 0])))) (Rule [1] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Traversal","liftIO") [],Comb FuncCall ("Traversal","replaceChildren") [Var 1]])),Func ("Traversal","mapChildrenIO") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","replaceChildrenIO") [Var 1],Var 3],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","mapIO") [Var 2],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","children") [Var 1],Var 3]]])),Func ("Traversal","mapFamilyIO") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","mapChildFamiliesIO") [Var 1,Var 1],Var 2],Var 3],Var 2])),Func ("Traversal","mapChildFamiliesIO") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","IO") [TVar 1])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0]))))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Traversal","mapChildrenIO") [Var 1],Comb (FuncPartCall 2) ("Traversal","mapFamilyIO") [Var 2]])),Func ("Traversal","evalFamilyIO") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0])))) (Rule [1,2] (Comb (FuncPartCall 1) ("Traversal","mapFamilyIO") [Var 1,Comb (FuncPartCall 1) ("Traversal","evalFamilyIO.g.37") [Var 2,Var 1]])),Func ("Traversal","evalFamilyIO.g.37") 3 Private (FuncType (FuncType (TVar 202) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 202]])) (FuncType (FuncType (TVar 202) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 202],FuncType (TCons ("Prelude","[]") [TVar 202]) (TVar 202)])) (FuncType (TVar 202) (TCons ("Prelude","IO") [TVar 202])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Comb (FuncPartCall 1) ("Prelude","maybe") [Comb FuncCall ("Prelude","return") [Var 3],Comb (FuncPartCall 1) ("Traversal","mapFamilyIO") [Var 2,Comb (FuncPartCall 1) ("Traversal","evalFamilyIO.g.37") [Var 1,Var 2]]]])),Func ("Traversal","evalChildFamiliesIO") 2 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 1]])) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 0]))))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Traversal","mapChildrenIO") [Var 1],Comb (FuncPartCall 1) ("Traversal","evalFamilyIO") [Var 2]])),Func ("Traversal","concatFL") 2 Private (FuncType (TCons ("Prelude","[]") [FuncType (TCons ("Prelude","[]") [TVar 0]) (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]) (Comb FuncCall ("Prelude","apply") [Var 3,Comb FuncCall ("Traversal","concatFL") [Var 4,Var 2]])])),Func ("Traversal","familyFL") 3 Private (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 0],FuncType (TCons ("Prelude","[]") [TVar 0]) (TVar 0)])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 0]) (TCons ("Prelude","[]") [TVar 0])))) (Rule [1,2,3] (Comb ConsCall ("Prelude",":") [Var 2,Comb FuncCall ("Traversal","childFamiliesFL") [Var 1,Var 1,Var 2,Var 3]])),Func ("Traversal","childFamiliesFL") 4 Private (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 0)])) (FuncType (FuncType (TVar 1) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TVar 1],FuncType (TCons ("Prelude","[]") [TVar 1]) (TVar 1)])) (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [TVar 1]) (TCons ("Prelude","[]") [TVar 1]))))) (Rule [1,2,3,4] (Comb FuncCall ("Traversal","concatFL") [Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 2) ("Traversal","familyFL") [Var 2],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Traversal","children") [Var 1],Var 3]],Var 4])),Func ("Traversal","liftIO") 2 Private (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TVar 1]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Var 2,Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Var 1]]))] []