Prog "AddWorld" ["FlatCurry","FlatCurryGoodies","Prelude"] [] [Func ("AddWorld","main") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","()") []]) (Rule [] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("FlatCurry","readFlatCurry") [Comb ConsCall ("Prelude",":") [Lit (Charc 'P'),Comb ConsCall ("Prelude",":") [Lit (Charc 'r'),Comb ConsCall ("Prelude",":") [Lit (Charc 'e'),Comb ConsCall ("Prelude",":") [Lit (Charc 'l'),Comb ConsCall ("Prelude",":") [Lit (Charc 'u'),Comb ConsCall ("Prelude",":") [Lit (Charc 'd'),Comb ConsCall ("Prelude",":") [Lit (Charc 'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","writeFile") [Comb ConsCall ("Prelude",":") [Lit (Charc 'P'),Comb ConsCall ("Prelude",":") [Lit (Charc '.'),Comb ConsCall ("Prelude",":") [Lit (Charc 'f'),Comb ConsCall ("Prelude",":") [Lit (Charc 'c'),Comb ConsCall ("Prelude",":") [Lit (Charc 'y'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","show") [],Comb FuncCall ("AddWorld","addWorld") []]]])),Func ("AddWorld","addWorld") 0 Public (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("FlatCurry","Prog") [])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("FlatCurryGoodies","updProgTypes") [Comb (FuncPartCall 1) ("Prelude","map") [Comb FuncCall ("FlatCurryGoodies","updTypeConsDecls") [Comb (FuncPartCall 1) ("Prelude","map") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","updConsArgs") [],Comb (FuncPartCall 1) ("Prelude","map") [Comb FuncCall ("AddWorld","addWorldTE") []]]]]]],Comb FuncCall ("Prelude",".") [Comb FuncCall ("FlatCurryGoodies","updProgTypes") [Comb (FuncPartCall 1) ("Prelude","map") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","updTypeSynonym") [],Comb FuncCall ("AddWorld","addWorldTE") []]]],Comb FuncCall ("FlatCurryGoodies","updProgFuncs") [Comb FuncCall ("AddWorld","addWorldFuncs") []]]])),Func ("AddWorld","addWorldTE") 0 Public (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("FlatCurry","TypeExpr") [])) (Rule [] (Comb (FuncPartCall 1) ("FlatCurryGoodies","trTypeExpr") [Comb (ConsPartCall 1) ("FlatCurry","TVar") [],Comb (FuncPartCall 2) ("AddWorld","addWorldTE.addWorldToIO.7") [],Comb (ConsPartCall 2) ("FlatCurry","FuncType") []])),Func ("AddWorld","addWorldTE.addWorldToIO.7") 2 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","TypeExpr") []]) (TCons ("FlatCurry","TypeExpr") []))) (Rule [1,2] (Case Rigid (Comb FuncCall ("AddWorld","isIO") [Var 1]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FlatCurry","FuncType") [Comb FuncCall ("AddWorld","unit") [],Comb ConsCall ("FlatCurry","TCons") [Var 1,Var 2]]),Branch (Pattern ("Prelude","False") []) (Case Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FlatCurry","TCons") [Var 1,Var 2]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])),Func ("AddWorld","prelude") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Comb ConsCall ("Prelude",":") [Lit (Charc 'P'),Comb ConsCall ("Prelude",":") [Lit (Charc 'r'),Comb ConsCall ("Prelude",":") [Lit (Charc 'e'),Comb ConsCall ("Prelude",":") [Lit (Charc 'l'),Comb ConsCall ("Prelude",":") [Lit (Charc 'u'),Comb ConsCall ("Prelude",":") [Lit (Charc 'd'),Comb ConsCall ("Prelude",":") [Lit (Charc 'e'),Comb ConsCall ("Prelude","[]") []]]]]]]])),Func ("AddWorld","isIO") 1 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (Rule [1] (Case Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","==") [Var 3,Comb ConsCall ("Prelude",":") [Lit (Charc 'I'),Comb ConsCall ("Prelude",":") [Lit (Charc 'O'),Comb ConsCall ("Prelude","[]") []]]],Comb FuncCall ("Prelude","==") [Var 2,Comb FuncCall ("AddWorld","prelude") []]])])),Func ("AddWorld","unit") 0 Public (TCons ("FlatCurry","TypeExpr") []) (Rule [] (Comb ConsCall ("FlatCurry","TCons") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("AddWorld","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc '('),Comb ConsCall ("Prelude",":") [Lit (Charc ')'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude","[]") []])),Func ("AddWorld","addWorldFuncs") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","map") [Comb FuncCall ("FlatCurryGoodies","updFuncType") [Comb FuncCall ("AddWorld","addWorldTE") []]],Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("AddWorld","changeExtIOFunc") []]])),Func ("AddWorld","changeExtIOFunc") 1 Public (FuncType (TCons ("FlatCurry","FuncDecl") []) (TCons ("FlatCurry","FuncDecl") [])) (Rule [1] (Let [(2,Comb FuncCall ("FlatCurryGoodies","resultType") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","funcType") [],Var 1]])] (Case Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","isExternal") [],Var 1],Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","isTCons") [],Var 2],Comb FuncCall ("AddWorld","isIO") [Comb FuncCall ("FlatCurryGoodies","tConsName") [Var 2]]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","updFuncArity") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","+") [],Lit (Intc 1)]],Var 1]),Branch (Pattern ("Prelude","False") []) (Case Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Var 1),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])))] []