[(WriteFile "searchpaths" ["src1","src2","src3"], "searchpaths" ),(WriteFile "src1/A.hs" ["B"], "searchpaths" "src1/A.hs" ),(WriteFile "src2/B.hs" [], "searchpaths" "src1/A.hs" "src2/B.hs" ),(BeginRuleAction {eTargets = [Record "searchpaths"], eDeps = []}, "searchpaths" "src1/A.hs" "src2/B.hs" ),(ReadFile "searchpaths", "searchpaths" "src1/A.hs" "src2/B.hs" ),(EndRuleAction {eProducts = [(Record "searchpaths",Content ["src1","src2","src3"])]}, "searchpaths" "src1/A.hs" "src2/B.hs" ),(BeginRuleAction {eTargets = [Existence "src1/A.hs"], eDeps = []}, "searchpaths" "src1/A.hs" "src2/B.hs" ),(Stat "src1/A.hs", "searchpaths" "src1/A.hs" "src2/B.hs" ),(EndRuleAction {eProducts = [(Existence "src1/A.hs",Exist True)]}, "searchpaths" "src1/A.hs" "src2/B.hs" ),(BeginRuleAction {eTargets = [FileT "A.hs"], eDeps = [Record "searchpaths"]}, "searchpaths" "src1/A.hs" "src2/B.hs" ),(Stat "src1/A.hs", "searchpaths" "src1/A.hs" "src2/B.hs" ),(EndRuleAction {eProducts = [(FileT "A.hs",FileR "src1/A.hs" 2)]}, "searchpaths" "src1/A.hs" "src2/B.hs" ),(BeginRuleAction {eTargets = [Record "A.dep"], eDeps = [FileT "A.hs"]}, "searchpaths" "src1/A.hs" "src2/B.hs" ),(ReadFile "src1/A.hs", "searchpaths" "src1/A.hs" "src2/B.hs" ),(WriteFile "A.dep" ["B"], "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(EndRuleAction {eProducts = [(Record "A.dep",Content ["B"])]}, "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(BeginRuleAction {eTargets = [Existence "src1/B.hs"], eDeps = []}, "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(Stat "src1/B.hs", "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(EndRuleAction {eProducts = [(Existence "src1/B.hs",Exist False)]}, "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(BeginRuleAction {eTargets = [Existence "src2/B.hs"], eDeps = []}, "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(Stat "src2/B.hs", "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(EndRuleAction {eProducts = [(Existence "src2/B.hs",Exist True)]}, "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(BeginRuleAction {eTargets = [FileT "B.hs"], eDeps = [Record "searchpaths"]}, "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(Stat "src2/B.hs", "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(EndRuleAction {eProducts = [(FileT "B.hs",FileR "src2/B.hs" 3)]}, "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(BeginRuleAction {eTargets = [Record "B.dep"], eDeps = [FileT "B.hs"]}, "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(ReadFile "src2/B.hs", "A.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(WriteFile "B.dep" [], "A.dep" "B.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(EndRuleAction {eProducts = [(Record "B.dep",Content [])]}, "A.dep" "B.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(BeginRuleAction {eTargets = [FileT "B.o",FileT "B.hi"], eDeps = [FileT "B.hs",Record "B.dep"]}, "A.dep" "B.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(ReadFile "src2/B.hs", "A.dep" "B.dep" "searchpaths" "src1/A.hs" "src2/B.hs" ),(WriteFile "dist/B.o" [], "A.dep" "B.dep" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(WriteFile "dist/B.hi" [], "A.dep" "B.dep" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(Stat "dist/B.o", "A.dep" "B.dep" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(Stat "dist/B.hi", "A.dep" "B.dep" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(EndRuleAction {eProducts = [(FileT "B.o",FileR "dist/B.o" 6),(FileT "B.hi",FileR "dist/B.hi" 7)]}, "A.dep" "B.dep" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(BeginRuleAction {eTargets = [FileT "A.o",FileT "A.hi"], eDeps = [FileT "A.hs",Record "A.dep"]}, "A.dep" "B.dep" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(ReadFile "dist/B.hi", "A.dep" "B.dep" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(ReadFile "src1/A.hs", "A.dep" "B.dep" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(WriteFile "dist/A.o" [], "A.dep" "B.dep" "dist/A.o" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(WriteFile "dist/A.hi" [], "A.dep" "B.dep" "dist/A.hi" "dist/A.o" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(Stat "dist/A.o", "A.dep" "B.dep" "dist/A.hi" "dist/A.o" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(Stat "dist/A.hi", "A.dep" "B.dep" "dist/A.hi" "dist/A.o" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" ),(EndRuleAction {eProducts = [(FileT "A.o",FileR "dist/A.o" 8),(FileT "A.hi",FileR "dist/A.hi" 9)]}, "A.dep" "B.dep" "dist/A.hi" "dist/A.o" "dist/B.hi" "dist/B.o" "searchpaths" "src1/A.hs" "src2/B.hs" )]