diff --git a/.curry/kics/prophecy.hs b/.curry/kics/prophecy.hs
new file mode 100644
--- /dev/null
+++ b/.curry/kics/prophecy.hs
@@ -0,0 +1,21 @@
+{-# OPTIONS -cpp #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Main (module Main) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Prelude
+import Curry.Module.Transform
+
+
+
+-- begin included
+
+
+
+-- end included
+
+main  = (Prelude.>>)(Curry.RunTimeSystem.setProgNameAndOrBased("Transform"))(Curry.Module.Prelude.curryIOVoid(Curry.Module.Transform.c_aux2))
+
+
diff --git a/Curry/Files/ProphecyPath.hs b/Curry/Files/ProphecyPath.hs
new file mode 100644
--- /dev/null
+++ b/Curry/Files/ProphecyPath.hs
@@ -0,0 +1,17 @@
+module Curry.Files.ProphecyPath 
+  (getProphecy
+  ,getOracleLibDir
+  ,prophecyVersion
+  ) where
+
+import Data.Version
+import System.FilePath
+import Paths_KiCS_prophecy
+
+prophecyVersion = showVersion version
+
+getProphecy = do
+  execDir <- getBinDir
+  return (execDir </> "prophecy")
+
+getOracleLibDir = getDataDir
diff --git a/Curry/Module/AddWorld.curry b/Curry/Module/AddWorld.curry
new file mode 100644
--- /dev/null
+++ b/Curry/Module/AddWorld.curry
@@ -0,0 +1,39 @@
+import FlatCurryGoodies
+import FlatCurry
+
+main = readFlatCurry "Prelude" >>= writeFile "P.fcy" . show . addWorld
+
+addWorld :: Prog -> Prog
+addWorld = 
+  updProgTypes (map (updTypeConsDecls (map (updConsArgs (map addWorldTE))))) .
+  updProgTypes (map (updTypeSynonym addWorldTE)) .
+  updProgFuncs addWorldFuncs
+
+addWorldTE :: TypeExpr -> TypeExpr
+addWorldTE = trTypeExpr TVar addWorldToIO FuncType
+  where
+    addWorldToIO mn args 
+      | isIO mn   = FuncType unit (TCons mn args)
+      | otherwise = TCons mn args
+
+prelude = "Prelude"
+
+isIO :: QName -> Bool
+isIO (m,n) = n=="IO" && m==prelude
+
+unit :: TypeExpr
+unit = TCons (prelude,"()") []
+
+addWorldFuncs :: [FuncDecl] -> [FuncDecl]
+addWorldFuncs = map (updFuncType addWorldTE) .
+                map changeExtIOFunc 
+
+
+changeExtIOFunc :: FuncDecl -> FuncDecl
+changeExtIOFunc func
+  | isExternal func && isTCons typ && isIO (tConsName typ) 
+  = updFuncArity (+1) func
+  | otherwise = func
+  where
+    typ   = resultType (funcType func) 
+    arity = funcArity func
diff --git a/Curry/Module/AddWorld.fcy b/Curry/Module/AddWorld.fcy
new file mode 100644
--- /dev/null
+++ b/Curry/Module/AddWorld.fcy
@@ -0,0 +1,1 @@
+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") [])])])))] []
diff --git a/Curry/Module/AddWorld.fint b/Curry/Module/AddWorld.fint
new file mode 100644
--- /dev/null
+++ b/Curry/Module/AddWorld.fint
@@ -0,0 +1,1 @@
+Prog "AddWorld" ["FlatCurry","FlatCurryGoodies","Prelude"] [] [Func ("AddWorld","main") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","()") []]) (Rule [] (Var 0)),Func ("AddWorld","addWorld") 0 Public (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("FlatCurry","Prog") [])) (Rule [] (Var 0)),Func ("AddWorld","addWorldTE") 0 Public (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("FlatCurry","TypeExpr") [])) (Rule [] (Var 0)),Func ("AddWorld","prelude") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Var 0)),Func ("AddWorld","isIO") 1 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("AddWorld","unit") 0 Public (TCons ("FlatCurry","TypeExpr") []) (Rule [] (Var 0)),Func ("AddWorld","addWorldFuncs") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])) (Rule [] (Var 0)),Func ("AddWorld","changeExtIOFunc") 1 Public (FuncType (TCons ("FlatCurry","FuncDecl") []) (TCons ("FlatCurry","FuncDecl") [])) (Rule [] (Var 0))] []
diff --git a/Curry/Module/CEventOracle.curry b/Curry/Module/CEventOracle.curry
new file mode 100644
--- /dev/null
+++ b/Curry/Module/CEventOracle.curry
@@ -0,0 +1,59 @@
+module CEventOracle where
+
+import IOExts (setAssoc)
+import System (getProgName)
+import Prelude as P
+
+-------------------------
+-- external variants 
+-------------------------
+
+data Ref
+
+initialize :: (Ref -> IO a) -> IO ()
+initialize app = do
+    mod <- getProgName
+    let extFile = mod++".ext"
+    setAssoc "extfn" extFile
+    writeFile extFile ""
+    mainR <- initRef
+    x <- app mainR
+    st <- getSearchTree x
+    catchFail (do putStrLn "starting to record oracle" 
+                  return P.$!! st)
+              (putStrLn "execution aborted. Writing oracle file" >>
+               return failed)
+    finalize (mod++".steps")
+
+initRef :: IO Ref
+initRef external
+
+
+finalize :: String -> IO ()
+finalize external
+
+fresh :: () -> Ref  -- must not be a constant in Haskell
+fresh external
+
+replace :: Ref -> a -> a
+replace external
+
+collapse :: Ref -> a -> a
+collapse external
+
+closeRef :: Ref -> a -> a
+closeRef external
+
+expand :: Ref -> [Ref] -> a -> a
+expand external
+
+--- generating a fresh variable
+unknown :: Ref -> a
+unknown external
+
+($!),($!!),($#),($##), apply :: (Ref -> a -> b) -> a -> Ref -> b
+($!)  external
+($!!) external
+($#)  external
+($##) external
+apply external
diff --git a/Curry/Module/CEventOracle.fcy b/Curry/Module/CEventOracle.fcy
new file mode 100644
--- /dev/null
+++ b/Curry/Module/CEventOracle.fcy
@@ -0,0 +1,1 @@
+Prog "CEventOracle" ["IOExts","Prelude","System"] [Type ("CEventOracle","Ref") Public [] []] [Func ("CEventOracle","initialize") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 0])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("System","getProgName") [],Comb (FuncPartCall 1) ("CEventOracle","initialize._#lambda2") [Var 1]])),Func ("CEventOracle","initialize._#lambda2") 2 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 10])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","++") [Var 2,Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]])] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","setAssoc") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude","[]") []]]]]],Var 3],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","writeFile") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("CEventOracle","initRef") [],Comb (FuncPartCall 1) ("CEventOracle","initialize._#lambda2._#lambda3") [Var 1,Var 2]]]]))),Func ("CEventOracle","initialize._#lambda2._#lambda3") 3 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 10])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Comb (FuncPartCall 1) ("CEventOracle","initialize._#lambda2._#lambda3._#lambda4") [Var 2]])),Func ("CEventOracle","initialize._#lambda2._#lambda3._#lambda4") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 10) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","getSearchTree") [Var 2],Comb (FuncPartCall 1) ("CEventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5") [Var 1]])),Func ("CEventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","SearchTree") [TVar 10]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("Prelude","return") [],Var 2]],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'W'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","return") [Comb FuncCall ("Prelude","failed") []]]],Comb FuncCall ("CEventOracle","finalize") [Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude","[]") []]]]]]]]]])),Func ("CEventOracle","initRef") 0 Public (TCons ("Prelude","IO") [TCons ("CEventOracle","Ref") []]) (External "CEventOracle.initRef"),Func ("CEventOracle","finalize") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "CEventOracle.finalize"),Func ("CEventOracle","fresh") 1 Public (FuncType (TCons ("Prelude","()") []) (TCons ("CEventOracle","Ref") [])) (External "CEventOracle.fresh"),Func ("CEventOracle","replace") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.replace"),Func ("CEventOracle","collapse") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.collapse"),Func ("CEventOracle","closeRef") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.closeRef"),Func ("CEventOracle","expand") 3 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TCons ("CEventOracle","Ref") []]) (FuncType (TVar 0) (TVar 0)))) (External "CEventOracle.expand"),Func ("CEventOracle","unknown") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (External "CEventOracle.unknown"),Func ("CEventOracle","$!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$!"),Func ("CEventOracle","$!!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$!!"),Func ("CEventOracle","$#") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$#"),Func ("CEventOracle","$##") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$##"),Func ("CEventOracle","apply") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.apply")] []
diff --git a/Curry/Module/CEventOracle.fint b/Curry/Module/CEventOracle.fint
new file mode 100644
--- /dev/null
+++ b/Curry/Module/CEventOracle.fint
@@ -0,0 +1,1 @@
+Prog "CEventOracle" ["IOExts","Prelude","System"] [Type ("CEventOracle","Ref") Public [] []] [Func ("CEventOracle","initialize") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 0])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("CEventOracle","initRef") 0 Public (TCons ("Prelude","IO") [TCons ("CEventOracle","Ref") []]) (External "CEventOracle.initRef"),Func ("CEventOracle","finalize") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "CEventOracle.finalize"),Func ("CEventOracle","fresh") 1 Public (FuncType (TCons ("Prelude","()") []) (TCons ("CEventOracle","Ref") [])) (External "CEventOracle.fresh"),Func ("CEventOracle","replace") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.replace"),Func ("CEventOracle","collapse") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.collapse"),Func ("CEventOracle","closeRef") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.closeRef"),Func ("CEventOracle","expand") 3 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TCons ("CEventOracle","Ref") []]) (FuncType (TVar 0) (TVar 0)))) (External "CEventOracle.expand"),Func ("CEventOracle","unknown") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (External "CEventOracle.unknown"),Func ("CEventOracle","$!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$!"),Func ("CEventOracle","$!!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$!!"),Func ("CEventOracle","$#") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$#"),Func ("CEventOracle","$##") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$##"),Func ("CEventOracle","apply") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.apply")] []
diff --git a/Curry/Module/CEventOracle.hs.include b/Curry/Module/CEventOracle.hs.include
new file mode 100644
--- /dev/null
+++ b/Curry/Module/CEventOracle.hs.include
@@ -0,0 +1,168 @@
+[ForType "Ref" Nothing
+,ForFunction "initialize"
+,ForFunction "finalize"
+,ForFunction "fresh"
+,ForFunction "replace"
+,ForFunction "collapse"
+,ForFunction "closeRef"
+,ForFunction "expand"
+,Pragma "LANGUAGE EmptyDataDecls, ForeignFunctionInterface"
+,Pragma "INCLUDE <coracle.h>"
+]
+
+import Foreign
+
+import Foreign
+import Foreign.C.String	
+
+foreign import ccall unsafe "static coracle.h init"      cinitialize :: Ref
+foreign import ccall unsafe "static coracle.h nextref"   cfresh      :: Int -> Ref
+
+foreign import ccall unsafe "static coracle.h collapse"  ccollapse   :: Ref -> ()
+foreign import ccall unsafe "static coracle.h close_ref" ccloseRef   :: Ref -> ()
+foreign import ccall unsafe "static coracle.h inconly"   creplace    :: Ref -> ()
+foreign import ccall unsafe "static coracle.h expand"    cexpand     :: Ref -> Int -> ()
+
+foreign import ccall unsafe "coracle.h finalize" cfinalize :: CString -> ()
+
+data CRef
+
+type Ref = Ptr CRef
+
+newtype C_Ref = C_Ref Ref
+
+instance Show C_Ref
+instance Read C_Ref
+instance Eq   C_Ref
+instance BaseCurry C_Ref
+instance Curry C_Ref
+
+initRef :: Result (C_IO C_Ref)
+initRef = let ref = cinitialize in seq ref (Curry.Module.Prelude.return (C_Ref ref))
+
+finalize :: C_String -> Result (C_IO T0)
+finalize s _ = C_IO (\ _ -> do
+  s' <- newCString (fromCurry s)
+  seq (cfinalize s') (Prelude.return (IOVal (T0))))
+
+--- Side effect that computes a fresh reference.
+fresh :: a -> Result C_Ref
+fresh _ _ =  C_Ref (cfresh 0)
+
+--- increase couter of ref by one
+replace :: C_Ref -> a -> b -> a
+replace  (C_Ref ref) x _ = seq (creplace ref) x
+
+--- Remove a ref and combine and counter +1
+collapse :: C_Ref -> a -> b -> a
+collapse  (C_Ref ref) x _ = seq (ccollapse ref) x
+
+--- Remove a ref and combine and counter +1
+closeRef :: C_Ref -> a -> b -> a
+closeRef  (C_Ref ref) x _ = seq (ccloseRef ref) x
+
+
+--- Projection on last argument that releases an event as a side effect.
+-- increment step counter of first ref and add remaining refs
+-- list has to be at least of size 1
+expand :: C_Ref -> List C_Ref -> a -> Result a
+expand  (C_Ref ref) refs x _
+  = seq (cexpand ref (len refs)) (seq (evalRefs refs) x)
+ where
+  len List      = 0
+  len (_ :< rs) = 1+len rs
+
+  evalRefs List = ()
+  evalRefs (r :< rs) = seq r (evalRefs rs)
+
+-- compare to BaseCurry.mapOr
+c_onBranches :: (BaseCurry a,BaseCurry b) => 
+  C_Ref -> (C_Ref -> a -> Result b) -> OrRef -> Branches a -> Result b
+c_onBranches r cont orref bs = 
+  evalRef' True (\ r x st -> replace r (cont r x st) st) (branching orref bs) r 
+  
+liftCase :: (BaseCurry a,BaseCurry b) => 
+  C_Ref -> (C_Ref -> a -> Result b) -> OrRef -> Branches a -> (Int -> State) -> b
+liftCase ref f orref bs = 
+  expand' ref (length bs - 1) (\ refs -> lift ($) orref (zipWith f refs bs))
+
+expand' :: C_Ref -> Int -> ([C_Ref] -> a) -> a
+expand' (C_Ref ref) l cont = 
+   cexpand ref l `seq`
+   evalRefs refs `seq`
+   cont (map C_Ref (ref:refs))
+ where
+   refs = map cfresh (replicate l 0)
+   
+   evalRefs [] = ()
+   evalRefs (r : rs) = seq r (evalRefs rs)
+   
+
+--- generating a fresh variable
+unknown :: Curry a => C_Ref -> Result a
+unknown r st = freeF (\x -> gen r x st)
+
+gen :: Curry a => C_Ref -> a -> Result a
+gen r x st = case consKind x of
+  Val       -> push r x st
+  Branching -> liftCase r gen (orRef x) (branches x) (const st)
+
+push :: Curry a => C_Ref -> a -> Result a
+push r x st = case foldCurry (\ _ n _ -> n+1) 0 x st of
+  0 -> collapse r x st
+  1 -> replace r (propagate (\_ -> gen r) x st) st
+  n -> expand' r (n-1) (\ refs -> propagate (distRefs refs) x st)
+
+  where
+    distRefs rs i x = gen (rs!!i) x
+  
+ 
+type RefFun a b = C_Ref -> Result (Prim (a -> Result b))
+
+($!), ($#),($!!),($##), apply :: (Curry a,Curry b) => 
+  Prim (RefFun a b) -> a -> C_Ref -> Result b
+(cont $! x)  r = Curry.Module.CEventOracle.prepApply hnfRef x cont r
+(cont $# x)  r = Curry.Module.CEventOracle.prepApply (evalRef True) x cont r
+(cont $!! x) r st = Curry.Module.CEventOracle.prepApply hnfRef (nfCTC const x st) cont r st
+(cont $## x) r st = Curry.Module.CEventOracle.prepApply (evalRef True) (gnfCTC const x st) cont r st
+
+
+apply cont x r = Curry.Module.CEventOracle.prepApply (\ cont' x' r' st' -> 
+                               replace r' (Curry.Module.Prelude.apply (cont' r' st') x' st') st') x cont r
+
+prepApply :: (BaseCurry a,BaseCurry b) => 
+  (RefFun b a -> b -> C_Ref -> Result a) -> b -> Prim (RefFun b a) -> C_Ref -> Result a
+prepApply  prep x (PrimValue f) cref st = prep f x cref st
+prepApply  prep x (PrimOr r bs) cref st = 
+  c_onBranches cref (\ r' f' -> Curry.Module.CEventOracle.prepApply prep x f' r') r bs st
+prepApply  _    _ f                r st  = collapse r (patternFail "Prelude.prepApply" f) st
+
+hnfRef :: (BaseCurry a,BaseCurry b) => RefFun b a -> b -> C_Ref -> Result a
+hnfRef = evalRef False 
+
+evalRef :: (BaseCurry a,BaseCurry b) => HNFMode -> RefFun a b -> a -> C_Ref -> Result b
+evalRef mode cont = evalRef' mode (\ r x st ->  replace r (Curry.Module.Prelude.apply (cont r st) x st) st)
+
+evalRef' :: (BaseCurry a,BaseCurry b) => 
+            HNFMode -> (C_Ref -> a -> Result b) -> a -> C_Ref -> Result b
+evalRef' mode cont x r state = 
+ case consKind x of
+   Failed    -> closeRef r (addException err x) state
+   Branching -> let orref = orRef x
+                    bs = branches x in
+    manipulateStore
+      (closeRef r (Curry.RunTimeSystem.failed (curryError "=:=")) state)
+      contEval
+      (\ ref' contSt -> if mode || not (isGenerator orref)
+                      then liftCase r contEvalRef (narrowOrRef orref) bs contSt
+                      else cont r (branching ref' bs) state)
+      (\ orref' x' st' -> branching orref' [contEval x' st'])
+      orref bs state
+   Val       -> cont r x state
+
+  where
+    err = curryError ("Prelude."++if mode then "$#" else "$!")
+    contEvalRef r' x' st' = evalRef' mode cont x' r' st'
+    contEval = contEvalRef r
+
+
diff --git a/Curry/Module/DebuggerPath.hs.include b/Curry/Module/DebuggerPath.hs.include
new file mode 100644
--- /dev/null
+++ b/Curry/Module/DebuggerPath.hs.include
@@ -0,0 +1,6 @@
+[ForFunction "debuggerLibPath"]
+
+import Curry.Files.KiCSDebugPath
+
+debuggerLibPath :: Result (C_IO C_String)
+debuggerLibPath = ioFunc0 getOracleLibDir
diff --git a/Curry/Module/EventOracle.curry b/Curry/Module/EventOracle.curry
new file mode 100644
--- /dev/null
+++ b/Curry/Module/EventOracle.curry
@@ -0,0 +1,118 @@
+module EventOracle where
+
+import IOExts
+import Unsafe
+import System (getProgName)
+
+
+type Ref = IORef Node
+data Node = Node Ref Cost Ref | Marker | Collapsed
+type Cost = Int
+
+initialize :: (Ref -> IO a) -> IO ()
+initialize app = do
+    mod <- getProgName
+    let extFile = mod++".ext"
+    setAssoc "extfn" extFile
+    writeFile extFile ""
+    startMarker <- newIORef (error "startMarker")
+    endMarker <- newIORef (error "endMarker")
+    mainR <- newIORef (Node startMarker 0 endMarker)
+    marker <- newIORef Marker
+    writeIORef startMarker (Node marker 0 mainR)
+    writeIORef endMarker (Node mainR 0 marker)
+    x <- app mainR
+    return Prelude.$!! x
+    putStrLn "finalizing"
+    finalize mod startMarker endMarker
+    return ()
+
+--- Signals the end of the computation.
+finalize :: String -> Ref -> Ref -> IO ()
+finalize mod fmR endR = do
+    _:l <- pointerToList fmR endR
+    writeFile (mod++".steps") (show l ++ "\n.\n")
+
+--- Side effect that computes a fresh reference.
+fresh :: () -> Ref  -- must not be a constant in Haskell
+fresh _ = unsafePerformIO (newIORef (error "fresh"))
+
+--- increase counter of ref by one
+replace :: Ref -> a -> a
+replace ref x = unsafePerformIO (do
+    --putChar '.'
+    node <- readIORef ref
+    case node of
+      Collapsed -> warning "tried to replace collapsed ref"
+      Node p c s -> writeIORef ref Prelude.$!! (Node p (c+1) s)
+    return x)
+
+--- Remove a ref and combine and counter +1
+collapse :: Ref -> a -> a
+collapse ref x = unsafePerformIO (do
+    --putChar '%'
+    node <- readIORef ref
+    case node of
+      Collapsed -> warning "tried to collapse collapsed ref"
+      Node p c s -> do
+        Node pp pc _ <- readIORef p
+        Node _ sc ss <- readIORef s
+        writeIORef ref Collapsed
+        writeIORef p (Node pp pc s)
+        writeIORef s Prelude.$!! (Node p (c+1+sc) ss)
+    return x)
+
+--- Remove a ref and combine without increment 
+--  (used in partCons, partCall only)
+closeRef :: Ref -> a -> a
+closeRef ref x = unsafePerformIO (do
+    --putChar '!'
+    node <- readIORef ref
+    case node of
+      Collapsed -> warning "tried to collapse collapsed ref"
+      Node p c s -> do
+        Node pp pc _ <- readIORef p
+        Node _ sc ss <- readIORef s
+        writeIORef ref Collapsed
+        writeIORef p (Node pp pc s)
+        writeIORef s Prelude.$!! (Node p (c+sc) ss)
+    return x)
+
+
+--- Projection on last argument that releases an event as a side effect.
+-- increment step counter of first ref and add remaining refs
+-- list has to be at least of size 1
+expand :: Ref -> [Ref] -> a -> a
+expand ref refs x = unsafePerformIO (do
+    --putChar ':'
+    --putStr (show (length refs))
+    node <- readIORef ref
+    case node of
+      Collapsed -> warning "tried to expand collapsed ref"
+      Node p c s -> do
+        last <- (toAssocList Prelude.$!! (c+1)) p (ref:refs) s
+        suc <- readIORef s
+        case suc of
+          Collapsed -> warning "successor of expanded ref is already collapsed"
+          Node _ sc ss -> writeIORef s (Node last sc ss)        
+          Marker -> done
+    return x)
+
+toAssocList :: Cost -> Ref -> [Ref] -> Ref -> IO Ref
+toAssocList c p [r] s = writeIORef r (Node p c s) >> return r
+toAssocList c p (r:rs@(r':_)) s = do
+    writeIORef r (Node p c r')
+    toAssocList 0 r rs s
+
+pointerToList :: Ref -> Ref -> IO [Cost]
+pointerToList ref end = do
+  node <- readIORef ref
+  case node of
+    Collapsed -> warning "final list contains collapsed reference" >> return []
+    Node _ c s -> do
+      cs <- pointerToList s end
+      return (c:cs)
+    Marker -> return []
+
+warning :: String -> IO ()
+warning msg = putStrLn $ "WARNING: " ++ msg
diff --git a/Curry/Module/EventOracle.fcy b/Curry/Module/EventOracle.fcy
new file mode 100644
--- /dev/null
+++ b/Curry/Module/EventOracle.fcy
@@ -0,0 +1,1 @@
+Prog "EventOracle" ["IOExts","Prelude","System","Unsafe"] [TypeSyn ("EventOracle","Ref") Public [] (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]),TypeSyn ("EventOracle","Cost") Public [] (TCons ("Prelude","Int") []),Type ("EventOracle","Node") Public [] [Cons ("EventOracle","Node") 3 Public [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []],TCons ("Prelude","Int") [],TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]],Cons ("EventOracle","Marker") 0 Public [],Cons ("EventOracle","Collapsed") 0 Public []]] [Func ("EventOracle","initialize") 1 Public (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 0])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("System","getProgName") [],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2") [Var 1]])),Func ("EventOracle","initialize._#lambda2") 2 Private (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 59])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","++") [Var 2,Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]])] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","setAssoc") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude","[]") []]]]]],Var 3],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","writeFile") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","newIORef") [Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'k'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2._#lambda3") [Var 1,Var 2]]]]))),Func ("EventOracle","initialize._#lambda2._#lambda3") 3 Private (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 59])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","newIORef") [Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'k'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2._#lambda3._#lambda4") [Var 1,Var 2,Var 3]])),Func ("EventOracle","initialize._#lambda2._#lambda3._#lambda4") 4 Private (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 59])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","newIORef") [Comb ConsCall ("EventOracle","Node") [Var 3,Lit (Intc  0),Var 4]],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5") [Var 1,Var 4,Var 2,Var 3]])),Func ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5") 5 Private (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 59])) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","newIORef") [Comb ConsCall ("EventOracle","Marker") []],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6") [Var 1,Var 2,Var 5,Var 3,Var 4]])),Func ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6") 6 Private (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 59])) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))))) (Rule [1,2,3,4,5,6] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 5,Comb ConsCall ("EventOracle","Node") [Var 6,Lit (Intc  0),Var 3]],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 2,Comb ConsCall ("EventOracle","Node") [Var 3,Lit (Intc  0),Var 6]],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6._#lambda7") [Var 2,Var 4,Var 5]]]])),Func ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6._#lambda7") 4 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 59) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("Prelude","return") [],Var 4],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'z'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("EventOracle","finalize") [Var 2,Var 3,Var 1],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","()") []]]]])),Func ("EventOracle","finalize") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("EventOracle","pointerToList") [Var 2,Var 3],Comb (FuncPartCall 1) ("EventOracle","finalize._#lambda8") [Var 1]])),Func ("EventOracle","finalize._#lambda8") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("Prelude","writeFile") [Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 4],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]])])),Func ("EventOracle","fresh") 1 Public (FuncType (TCons ("Prelude","()") []) (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []])) (Rule [1] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("IOExts","newIORef") [Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude","[]") []]]]]]]]])),Func ("EventOracle","replace") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [1,2] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","replace._#lambda9") [Var 1,Var 2]]])),Func ("EventOracle","replace._#lambda9") 3 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 76) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TVar 76])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>") [Case  Rigid (Var 3) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("EventOracle","Node") [4,5,6]) (Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("IOExts","writeIORef") [Var 1],Comb ConsCall ("EventOracle","Node") [Var 4,Comb FuncCall ("Prelude","+") [Var 5,Lit (Intc  1)],Var 6]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","failed") [])],Comb FuncCall ("Prelude","return") [Var 2]])),Func ("EventOracle","collapse") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [1,2] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","collapse._#lambda11") [Var 1,Var 2]]])),Func ("EventOracle","collapse._#lambda11") 3 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 93) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TVar 93])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>") [Case  Rigid (Var 3) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("EventOracle","Node") [4,5,6]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 4],Comb (FuncPartCall 1) ("EventOracle","collapse._#lambda11._#lambda13") [Var 5,Var 4,Var 1,Var 6]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","failed") [])],Comb FuncCall ("Prelude","return") [Var 2]])),Func ("EventOracle","collapse._#lambda11._#lambda13") 5 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [1,2,3,4,5] (Case  Flex (Var 5) [Branch (Pattern ("EventOracle","Node") [6,7,8]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 4],Comb (FuncPartCall 1) ("EventOracle","collapse._#lambda11._#lambda13._#lambda14") [Var 1,Var 2,Var 7,Var 6,Var 3,Var 4]])])),Func ("EventOracle","collapse._#lambda11._#lambda13._#lambda14") 7 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))))) (Rule [1,2,3,4,5,6,7] (Case  Flex (Var 7) [Branch (Pattern ("EventOracle","Node") [8,9,10]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 5,Comb ConsCall ("EventOracle","Collapsed") []],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 2,Comb ConsCall ("EventOracle","Node") [Var 4,Var 3,Var 6]],Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("IOExts","writeIORef") [Var 6],Comb ConsCall ("EventOracle","Node") [Var 2,Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","+") [Var 1,Lit (Intc  1)],Var 9],Var 10]]]])])),Func ("EventOracle","closeRef") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [1,2] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","closeRef._#lambda15") [Var 1,Var 2]]])),Func ("EventOracle","closeRef._#lambda15") 3 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 123) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TVar 123])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>") [Case  Rigid (Var 3) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("EventOracle","Node") [4,5,6]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 4],Comb (FuncPartCall 1) ("EventOracle","closeRef._#lambda15._#lambda17") [Var 5,Var 4,Var 1,Var 6]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","failed") [])],Comb FuncCall ("Prelude","return") [Var 2]])),Func ("EventOracle","closeRef._#lambda15._#lambda17") 5 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [1,2,3,4,5] (Case  Flex (Var 5) [Branch (Pattern ("EventOracle","Node") [6,7,8]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 4],Comb (FuncPartCall 1) ("EventOracle","closeRef._#lambda15._#lambda17._#lambda18") [Var 1,Var 2,Var 7,Var 6,Var 3,Var 4]])])),Func ("EventOracle","closeRef._#lambda15._#lambda17._#lambda18") 7 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))))) (Rule [1,2,3,4,5,6,7] (Case  Flex (Var 7) [Branch (Pattern ("EventOracle","Node") [8,9,10]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 5,Comb ConsCall ("EventOracle","Collapsed") []],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 2,Comb ConsCall ("EventOracle","Node") [Var 4,Var 3,Var 6]],Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("IOExts","writeIORef") [Var 6],Comb ConsCall ("EventOracle","Node") [Var 2,Comb FuncCall ("Prelude","+") [Var 1,Var 9],Var 10]]]])])),Func ("EventOracle","expand") 3 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]) (FuncType (TVar 0) (TVar 0)))) (Rule [1,2,3] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","expand._#lambda19") [Var 1,Var 2,Var 3]]])),Func ("EventOracle","expand._#lambda19") 4 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]) (FuncType (TVar 175) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TVar 175]))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude",">>") [Case  Rigid (Var 4) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("EventOracle","Node") [5,6,7]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 4) ("EventOracle","toAssocList") [],Comb FuncCall ("Prelude","+") [Var 6,Lit (Intc  1)]],Var 5],Comb ConsCall ("Prelude",":") [Var 1,Var 2]],Var 7],Comb (FuncPartCall 1) ("EventOracle","expand._#lambda19._#lambda21") [Var 7]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","failed") [])],Comb FuncCall ("Prelude","return") [Var 3]])),Func ("EventOracle","expand._#lambda19._#lambda21") 2 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","expand._#lambda19._#lambda21._#lambda22") [Var 2,Var 1]])),Func ("EventOracle","expand._#lambda19._#lambda21._#lambda22") 3 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Case  Rigid (Var 3) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("EventOracle","Node") [4,5,6]) (Comb FuncCall ("IOExts","writeIORef") [Var 2,Comb ConsCall ("EventOracle","Node") [Var 1,Var 5,Var 6]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","done") [])])),Func ("EventOracle","toAssocList") 4 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]))))) (Rule [1,2,3,4] (Case  Flex (Var 3) [Branch (Pattern ("Prelude",":") [5,6]) (Case  Flex (Var 6) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 5,Comb ConsCall ("EventOracle","Node") [Var 2,Var 1,Var 4]],Comb FuncCall ("Prelude","return") [Var 5]]),Branch (Pattern ("Prelude",":") [7,8]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 5,Comb ConsCall ("EventOracle","Node") [Var 2,Var 1,Var 7]],Comb FuncCall ("EventOracle","toAssocList") [Lit (Intc  0),Var 5,Var 6,Var 4]])])])),Func ("EventOracle","pointerToList") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","pointerToList._#lambda24") [Var 2]])),Func ("EventOracle","pointerToList._#lambda24") 2 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]))) (Rule [1,2] (Case  Rigid (Var 2) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","[]") []]]),Branch (Pattern ("EventOracle","Node") [3,4,5]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("EventOracle","pointerToList") [Var 5,Var 1],Comb (FuncPartCall 1) ("EventOracle","pointerToList._#lambda24._#lambda26") [Var 4]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","[]") []])])),Func ("EventOracle","pointerToList._#lambda24._#lambda26") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude",":") [Var 1,Var 2]])),Func ("EventOracle","warning") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","putStrLn") [],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'W'),Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'G'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Var 1]]))] []
diff --git a/Curry/Module/EventOracle.fint b/Curry/Module/EventOracle.fint
new file mode 100644
--- /dev/null
+++ b/Curry/Module/EventOracle.fint
@@ -0,0 +1,1 @@
+Prog "EventOracle" ["IOExts","Prelude","System","Unsafe"] [TypeSyn ("EventOracle","Ref") Public [] (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]),TypeSyn ("EventOracle","Cost") Public [] (TCons ("Prelude","Int") []),Type ("EventOracle","Node") Public [] [Cons ("EventOracle","Node") 3 Public [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []],TCons ("Prelude","Int") [],TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]],Cons ("EventOracle","Marker") 0 Public [],Cons ("EventOracle","Collapsed") 0 Public []]] [Func ("EventOracle","initialize") 1 Public (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 0])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EventOracle","finalize") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [] (Var 0)),Func ("EventOracle","fresh") 1 Public (FuncType (TCons ("Prelude","()") []) (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []])) (Rule [] (Var 0)),Func ("EventOracle","replace") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("EventOracle","collapse") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("EventOracle","closeRef") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("EventOracle","expand") 3 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]) (FuncType (TVar 0) (TVar 0)))) (Rule [] (Var 0)),Func ("EventOracle","toAssocList") 4 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]))))) (Rule [] (Var 0)),Func ("EventOracle","pointerToList") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]))) (Rule [] (Var 0)),Func ("EventOracle","warning") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0))] []
diff --git a/Curry/Module/LiftCases.curry b/Curry/Module/LiftCases.curry
new file mode 100644
--- /dev/null
+++ b/Curry/Module/LiftCases.curry
@@ -0,0 +1,136 @@
+------------------------------------------------------------------
+--- This module provides a transformation on FlatCurry programs.
+--- The result contains a new function for each nested case 
+--- contained in the original program. 
+--- The new functions have the names  "_case_ ... i" where i
+--- is a number and there are as many underscores as necessary 
+--- to avoid name clashes. (Example: _case_0)
+--- In addition, all the cases are normalized, i.e. applied to 
+--- a variable. This variable is always the last argument of 
+--- the newly generated function.
+--- The first argument of liftCases is a boolean flag, meaning:
+--- False: introduce function for EACH case of original program
+--- True:  introduce function for nested and not normalized 
+---        cases only
+---
+--- Some possible improvements:
+--- 1) Up to now the newly generated functions are not correctly 
+---    typed but have type (TVar (-42)).
+---
+--- @author  bbr,sebf
+--- @version October 2006
+------------------------------------------------------------------
+
+module LiftCases (liftCases,isCaseAuxFuncName,isCaseAuxFuncType) where
+
+import FlatCurry
+import FlatCurryGoodies
+import List (isPrefixOf,partition,delete)
+import FiniteMap
+
+isCaseAuxFuncName :: String -> Bool
+isCaseAuxFuncName n = take 6 n == "_case_"
+
+isCaseAuxFuncType :: TypeExpr -> Bool
+isCaseAuxFuncType t = t==TVar (-42)
+
+--- @param - the program to be transformed
+liftCases :: Bool -> Prog -> Prog
+liftCases nestedOnly p = 
+  let fs  = progFuncs p
+      aux = genAuxName (map (snd . funcName) fs)
+      (exts,ins) = partition isExternal fs
+      (newFsf,_,auxFf) = foldr (liftCasesFunc nestedOnly (progName p) aux) 
+                               (id,0,id) 
+                               ins
+   in updProgFuncs (const (newFsf (auxFf exts))) p
+
+type FuncList = [FuncDecl] -> [FuncDecl]
+type Result = (FuncList,Int,FuncList)
+
+liftCasesFunc :: Bool -> String -> String -> FuncDecl -> Result -> Result
+liftCasesFunc onlyNested mod aux f (esMain,i0,ffMain) = 
+  ((updFuncBody (const exp) f:) . esMain,iMain,ffMain . ffeMain)
+  where
+    body = funcBody f
+
+    (exp,iMain,ffeMain,_) = 
+     if onlyNested then (case body of
+      Case cm (Var v) bs -> 
+         let (e',i',ffe,_)    = trans (Var v) i0
+             (bs',i'',ffbs,_) = 
+               fold i' (map (\ (Branch pat be) -> branch pat (trans be)) bs)
+          in (Case cm e' bs', i'',ffe . ffbs,[])
+      _            -> trans body i0)
+     else trans body i0
+           
+    trans = trExpr var lit comb leT freE or casE branch
+
+    var v i = (Var v,i,id,[v])
+    lit l i = (Lit l,i,id,[])
+    comb ct n args i = let (args',i',ff,vs) = fold i args
+      in (Comb ct n args',i',ff,vs)
+    leT bs e i = 
+      let (vs,es)  = unzip bs 
+          (es',i',ffes,ves) = fold i es
+          (e',i'',ffe,ve) = e i'
+      in (Let (zip vs es') e',i'', ffes . ffe,
+          filter (not . elemOf vs) (ves ++ ve))
+    freE vs e i = 
+      let (e',i',ff,ve) = e i 
+       in (Free vs e',i',ff,filter (not . elemOf vs) ve)
+    or e1 e2 i = 
+      let ([e1',e2'],i',ff,vs) = fold i [e1,e2]
+       in (Or e1' e2',i',ff,vs)
+    casE ct e bs i = 
+      let (e',i',ffe,ve)     = e i
+          (bs',i'',ffbs,vbs) = fold i' bs
+          envRes = nub (ve ++ vbs)
+          env = case e' of
+                  Var v -> delete v envRes
+                  _     -> envRes
+       in (genFuncCall mod aux i'' env e',i''+1,
+           (genFunc mod aux i'' env e' ct bs':) . ffe . ffbs,
+           envRes)
+    branch p e i = 
+      let (e',i',ff,ve) = e i
+       in (Branch p e',i',ff,removePVars ve p)
+
+fold :: a -> [a -> (c,a,d -> d,[e])] -> ([c],a,d -> d,[e])
+fold i = foldr once ([],i,id,[])
+  where
+    once f (es,j,ff1,vs1) = let (e,k,ff2,vs2) = f j
+                             in (e:es,k,ff1 . ff2,vs1++vs2)
+
+genFuncCall :: String -> String -> Int -> [VarIndex] -> Expr -> Expr
+genFuncCall mod aux i env e = 
+  Comb FuncCall (mod,aux++show i) (map Var env ++ [e])
+
+genFunc :: String -> String -> Int -> [VarIndex] -> Expr ->
+           CaseType -> [BranchExpr] -> FuncDecl
+genFunc mod aux i env e ct bs = 
+  Func (mod,aux++show i) (length env+1) Private (TVar (-42)) $
+       Rule (env++[v]) (Case ct (Var v) bs)
+  where
+    v = case e of 
+         Var idx -> idx
+         _       -> foldr max 0 (env++concatMap allVarsBranch bs) + 1
+    
+    allVarsBranch (Branch p pe) = 
+       trPattern (\ _ xs -> xs) (\ _ -> []) p ++ allVars pe
+
+removePVars :: [Int] -> Pattern -> [Int]
+removePVars e = trPattern (\ _ vs -> filter (not . elemOf vs) e) (const e)
+
+genAuxName :: [String] -> String
+genAuxName = foldl addUnderscores "_case_"
+
+addUnderscores :: String -> String -> String
+addUnderscores n m = if isPrefixOf n m then addUnderscores (n++"_") m else n     
+
+elemOf = flip elem
+
+nub xs = map fst $ fmToList $ listToFM (<) $ zip xs (repeat ())
+
+
+
diff --git a/Curry/Module/LiftCases.fcy b/Curry/Module/LiftCases.fcy
new file mode 100644
--- /dev/null
+++ b/Curry/Module/LiftCases.fcy
@@ -0,0 +1,1 @@
+Prog "LiftCases" ["FiniteMap","FlatCurry","FlatCurryGoodies","List","Prelude"] [TypeSyn ("LiftCases","FuncList") Private [] (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])),TypeSyn ("LiftCases","Result") Private [] (TCons ("Prelude","(,,)") [FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])])] [Func ("LiftCases","isCaseAuxFuncName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","==") [Comb FuncCall ("Prelude","take") [Lit (Intc  6),Var 1],Comb ConsCall ("Prelude",":") [Lit (Charc  '_'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  '_'),Comb ConsCall ("Prelude","[]") []]]]]]]])),Func ("LiftCases","isCaseAuxFuncType") 1 Public (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","==") [Var 1,Comb ConsCall ("FlatCurry","TVar") [Comb FuncCall ("Prelude","negate") [Lit (Intc  42)]]])),Func ("LiftCases","liftCases") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("FlatCurry","Prog") []))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","progFuncs") [],Var 2])] (Let [(4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("LiftCases","genAuxName") [],Comb FuncCall ("Prelude","map") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","snd") [],Comb FuncCall ("FlatCurryGoodies","funcName") []],Var 3]])] (Let [(5,Comb FuncCall ("List","partition") [Comb FuncCall ("FlatCurryGoodies","isExternal") [],Var 3])] (Let [(6,Comb FuncCall ("LiftCases","liftCases._#selFP6#exts") [Var 5])] (Let [(7,Comb FuncCall ("LiftCases","liftCases._#selFP7#ins") [Var 5])] (Let [(8,Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("LiftCases","liftCasesFunc") [Var 1,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","progName") [],Var 2],Var 4],Comb ConsCall ("Prelude","(,,)") [Comb (FuncPartCall 1) ("Prelude","id") [],Lit (Intc  0),Comb (FuncPartCall 1) ("Prelude","id") []],Var 7])] (Let [(9,Comb FuncCall ("LiftCases","liftCases._#selFP4#newFsf") [Var 8])] (Let [(10,Comb FuncCall ("LiftCases","liftCases._#selFP5#auxFf") [Var 8])] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","updProgFuncs") [Comb (FuncPartCall 1) ("Prelude","const") [Comb FuncCall ("Prelude","apply") [Var 9,Comb FuncCall ("Prelude","apply") [Var 10,Var 6]]]],Var 2])))))))))),Func ("LiftCases","liftCases._#selFP6#exts") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []],TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("LiftCases","liftCases._#selFP7#ins") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []],TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("LiftCases","liftCases._#selFP4#newFsf") 1 Private (FuncType (TCons ("Prelude","(,,)") [FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,)") [2,3,4]) (Var 2)])),Func ("LiftCases","liftCases._#selFP5#auxFf") 1 Private (FuncType (TCons ("Prelude","(,,)") [FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,)") [2,3,4]) (Var 4)])),Func ("LiftCases","liftCasesFunc") 5 Private (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("FlatCurry","FuncDecl") []) (FuncType (TCons ("Prelude","(,,)") [FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])]) (TCons ("Prelude","(,,)") [FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])])))))) (Rule [1,2,3,4,5] (Case  Flex (Var 5) [Branch (Pattern ("Prelude","(,,)") [6,7,8]) (Let [(9,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","funcBody") [],Var 4])] (Let [(10,Comb (FuncPartCall 1) ("FlatCurryGoodies","trExpr") [Comb (FuncPartCall 2) ("LiftCases","liftCasesFunc.var.18") [],Comb (FuncPartCall 2) ("LiftCases","liftCasesFunc.lit.18") [],Comb (FuncPartCall 4) ("LiftCases","liftCasesFunc.comb.18") [],Comb (FuncPartCall 3) ("LiftCases","liftCasesFunc.leT.18") [],Comb (FuncPartCall 3) ("LiftCases","liftCasesFunc.freE.18") [],Comb (FuncPartCall 3) ("LiftCases","liftCasesFunc.or.18") [],Comb (FuncPartCall 4) ("LiftCases","liftCasesFunc.casE.18") [Var 3,Var 2],Comb (FuncPartCall 3) ("LiftCases","liftCasesFunc.branch.18") []])] (Let [(11,Case  Rigid (Var 1) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Var 9) [Branch (Pattern ("FlatCurry","Case") [12,13,14]) (Case  Rigid (Var 13) [Branch (Pattern ("FlatCurry","Var") [15]) (Let [(16,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Comb ConsCall ("FlatCurry","Var") [Var 15]],Var 7])] (Let [(17,Comb FuncCall ("LiftCases","liftCasesFunc._#selFP58#e'") [Var 16])] (Let [(18,Comb FuncCall ("LiftCases","liftCasesFunc._#selFP59#i'") [Var 16])] (Let [(19,Comb FuncCall ("LiftCases","liftCasesFunc._#selFP60#ffe") [Var 16])] (Let [(20,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("LiftCases","fold") [Var 18],Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("LiftCases","liftCasesFunc._#lambda3") [Var 10],Var 14]])] (Let [(21,Comb FuncCall ("LiftCases","liftCasesFunc._#selFP55#bs'") [Var 20])] (Let [(22,Comb FuncCall ("LiftCases","liftCasesFunc._#selFP56#i''") [Var 20])] (Let [(23,Comb FuncCall ("LiftCases","liftCasesFunc._#selFP57#ffbs") [Var 20])] (Comb ConsCall ("Prelude","(,,,)") [Comb ConsCall ("FlatCurry","Case") [Var 12,Var 17,Var 21],Var 22,Comb FuncCall ("Prelude",".") [Var 19,Var 23],Comb ConsCall ("Prelude","[]") []]))))))))),Branch (Pattern ("FlatCurry","Lit") [24]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7]),Branch (Pattern ("FlatCurry","Comb") [25,26,27]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7]),Branch (Pattern ("FlatCurry","Let") [28,29]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7]),Branch (Pattern ("FlatCurry","Free") [30,31]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7]),Branch (Pattern ("FlatCurry","Or") [32,33]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7]),Branch (Pattern ("FlatCurry","Case") [34,35,36]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7])]),Branch (Pattern ("FlatCurry","Var") [37]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7]),Branch (Pattern ("FlatCurry","Lit") [38]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7]),Branch (Pattern ("FlatCurry","Comb") [39,40,41]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7]),Branch (Pattern ("FlatCurry","Let") [42,43]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7]),Branch (Pattern ("FlatCurry","Free") [44,45]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7]),Branch (Pattern ("FlatCurry","Or") [46,47]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7])]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 10,Var 9],Var 7])])] (Let [(48,Comb FuncCall ("LiftCases","liftCasesFunc._#selFP61#exp") [Var 11])] (Let [(49,Comb FuncCall ("LiftCases","liftCasesFunc._#selFP62#iMain") [Var 11])] (Let [(50,Comb FuncCall ("LiftCases","liftCasesFunc._#selFP63#ffeMain") [Var 11])] (Comb ConsCall ("Prelude","(,,)") [Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("Prelude",":") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","updFuncBody") [],Comb (FuncPartCall 1) ("Prelude","const") [Var 48]],Var 4]],Var 6],Var 49,Comb FuncCall ("Prelude",".") [Var 8,Var 50]])))))))])),Func ("LiftCases","liftCasesFunc.var.18") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 0,FuncType (TVar 1) (TVar 1),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]))) (Rule [1,2] (Comb ConsCall ("Prelude","(,,,)") [Comb ConsCall ("FlatCurry","Var") [Var 1],Var 2,Comb (FuncPartCall 1) ("Prelude","id") [],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude","[]") []]])),Func ("LiftCases","liftCasesFunc.lit.18") 2 Private (FuncType (TCons ("FlatCurry","Literal") []) (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 0,FuncType (TVar 1) (TVar 1),TCons ("Prelude","[]") [TVar 2]]))) (Rule [1,2] (Comb ConsCall ("Prelude","(,,,)") [Comb ConsCall ("FlatCurry","Lit") [Var 1],Var 2,Comb (FuncPartCall 1) ("Prelude","id") [],Comb ConsCall ("Prelude","[]") []])),Func ("LiftCases","liftCasesFunc.comb.18") 4 Private (FuncType (TCons ("FlatCurry","CombType") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 0,FuncType (TVar 1) (TVar 1),TCons ("Prelude","[]") [TVar 2]])]) (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 0,FuncType (TVar 1) (TVar 1),TCons ("Prelude","[]") [TVar 2]]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("LiftCases","fold") [Var 4],Var 3])] (Let [(6,Comb FuncCall ("LiftCases","liftCasesFunc.comb.18._#selFP10#args'") [Var 5])] (Let [(7,Comb FuncCall ("LiftCases","liftCasesFunc.comb.18._#selFP11#i'") [Var 5])] (Let [(8,Comb FuncCall ("LiftCases","liftCasesFunc.comb.18._#selFP12#ff") [Var 5])] (Let [(9,Comb FuncCall ("LiftCases","liftCasesFunc.comb.18._#selFP13#vs") [Var 5])] (Comb ConsCall ("Prelude","(,,,)") [Comb ConsCall ("FlatCurry","Comb") [Var 1,Var 2,Var 6],Var 7,Var 8,Var 9]))))))),Func ("LiftCases","liftCasesFunc.comb.18._#selFP10#args'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 149,FuncType (TVar 156) (TVar 156),TCons ("Prelude","[]") [TVar 157]]) (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("LiftCases","liftCasesFunc.comb.18._#selFP11#i'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 149,FuncType (TVar 156) (TVar 156),TCons ("Prelude","[]") [TVar 157]]) (TVar 149)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("LiftCases","liftCasesFunc.comb.18._#selFP12#ff") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 149,FuncType (TVar 156) (TVar 156),TCons ("Prelude","[]") [TVar 157]]) (FuncType (TVar 156) (TVar 156))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("LiftCases","liftCasesFunc.comb.18._#selFP13#vs") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 149,FuncType (TVar 156) (TVar 156),TCons ("Prelude","[]") [TVar 157]]) (TCons ("Prelude","[]") [TVar 157])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 5)])),Func ("LiftCases","liftCasesFunc.leT.18") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 0,FuncType (TVar 1) (TVar 1),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])]]) (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 2,FuncType (TVar 3) (TVar 1),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])) (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 2,FuncType (TVar 3) (TVar 1),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])))) (Rule [1,2,3] (Let [(4,Comb FuncCall ("Prelude","unzip") [Var 1])] (Let [(5,Comb FuncCall ("LiftCases","liftCasesFunc.leT.18._#selFP25#vs") [Var 4])] (Let [(6,Comb FuncCall ("LiftCases","liftCasesFunc.leT.18._#selFP26#es") [Var 4])] (Let [(7,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("LiftCases","fold") [Var 3],Var 6])] (Let [(8,Comb FuncCall ("LiftCases","liftCasesFunc.leT.18._#selFP21#es'") [Var 7])] (Let [(9,Comb FuncCall ("LiftCases","liftCasesFunc.leT.18._#selFP22#i'") [Var 7])] (Let [(10,Comb FuncCall ("LiftCases","liftCasesFunc.leT.18._#selFP23#ffes") [Var 7])] (Let [(11,Comb FuncCall ("LiftCases","liftCasesFunc.leT.18._#selFP24#ves") [Var 7])] (Let [(12,Comb FuncCall ("Prelude","apply") [Var 2,Var 9])] (Let [(13,Comb FuncCall ("LiftCases","liftCasesFunc.leT.18._#selFP17#e'") [Var 12])] (Let [(14,Comb FuncCall ("LiftCases","liftCasesFunc.leT.18._#selFP18#i''") [Var 12])] (Let [(15,Comb FuncCall ("LiftCases","liftCasesFunc.leT.18._#selFP19#ffe") [Var 12])] (Let [(16,Comb FuncCall ("LiftCases","liftCasesFunc.leT.18._#selFP20#ve") [Var 12])] (Comb ConsCall ("Prelude","(,,,)") [Comb ConsCall ("FlatCurry","Let") [Comb FuncCall ("Prelude","zip") [Var 5,Var 8],Var 13],Var 14,Comb FuncCall ("Prelude",".") [Var 10,Var 15],Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","not") [],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("LiftCases","elemOf") [],Var 5]],Comb FuncCall ("Prelude","++") [Var 11,Var 16]]]))))))))))))))),Func ("LiftCases","liftCasesFunc.leT.18._#selFP25#vs") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []],TCons ("Prelude","[]") [FuncType (TVar 161) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 161,FuncType (TVar 172) (TVar 172),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("LiftCases","liftCasesFunc.leT.18._#selFP26#es") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []],TCons ("Prelude","[]") [FuncType (TVar 161) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 161,FuncType (TVar 172) (TVar 172),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])]]) (TCons ("Prelude","[]") [FuncType (TVar 161) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 161,FuncType (TVar 172) (TVar 172),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("LiftCases","liftCasesFunc.leT.18._#selFP21#es'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 161,FuncType (TVar 172) (TVar 172),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("LiftCases","liftCasesFunc.leT.18._#selFP22#i'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 161,FuncType (TVar 172) (TVar 172),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TVar 161)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("LiftCases","liftCasesFunc.leT.18._#selFP23#ffes") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 161,FuncType (TVar 172) (TVar 172),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (FuncType (TVar 172) (TVar 172))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("LiftCases","liftCasesFunc.leT.18._#selFP24#ves") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 161,FuncType (TVar 172) (TVar 172),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 5)])),Func ("LiftCases","liftCasesFunc.leT.18._#selFP17#e'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 175,FuncType (TVar 184) (TVar 172),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("LiftCases","liftCasesFunc.leT.18._#selFP18#i''") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 175,FuncType (TVar 184) (TVar 172),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TVar 175)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("LiftCases","liftCasesFunc.leT.18._#selFP19#ffe") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 175,FuncType (TVar 184) (TVar 172),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (FuncType (TVar 184) (TVar 172))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("LiftCases","liftCasesFunc.leT.18._#selFP20#ve") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 175,FuncType (TVar 184) (TVar 172),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 5)])),Func ("LiftCases","liftCasesFunc.freE.18") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 1,TVar 2,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])) (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 1,TVar 2,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])))) (Rule [1,2,3] (Let [(4,Comb FuncCall ("Prelude","apply") [Var 2,Var 3])] (Let [(5,Comb FuncCall ("LiftCases","liftCasesFunc.freE.18._#selFP28#e'") [Var 4])] (Let [(6,Comb FuncCall ("LiftCases","liftCasesFunc.freE.18._#selFP29#i'") [Var 4])] (Let [(7,Comb FuncCall ("LiftCases","liftCasesFunc.freE.18._#selFP30#ff") [Var 4])] (Let [(8,Comb FuncCall ("LiftCases","liftCasesFunc.freE.18._#selFP31#ve") [Var 4])] (Comb ConsCall ("Prelude","(,,,)") [Comb ConsCall ("FlatCurry","Free") [Var 1,Var 5],Var 6,Var 7,Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","not") [],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("LiftCases","elemOf") [],Var 1]],Var 8]]))))))),Func ("LiftCases","liftCasesFunc.freE.18._#selFP28#e'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 196,TVar 197,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("LiftCases","liftCasesFunc.freE.18._#selFP29#i'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 196,TVar 197,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TVar 196)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("LiftCases","liftCasesFunc.freE.18._#selFP30#ff") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 196,TVar 197,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TVar 197)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("LiftCases","liftCasesFunc.freE.18._#selFP31#ve") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 196,TVar 197,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 5)])),Func ("LiftCases","liftCasesFunc.or.18") 3 Private (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 0,FuncType (TVar 1) (TVar 1),TCons ("Prelude","[]") [TVar 2]])) (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 0,FuncType (TVar 1) (TVar 1),TCons ("Prelude","[]") [TVar 2]])) (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 0,FuncType (TVar 1) (TVar 1),TCons ("Prelude","[]") [TVar 2]])))) (Rule [1,2,3] (Let [(4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("LiftCases","fold") [Var 3],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]])] (Let [(5,Comb FuncCall ("LiftCases","liftCasesFunc.or.18._#selFP33#e1'") [Var 4])] (Let [(6,Comb FuncCall ("LiftCases","liftCasesFunc.or.18._#selFP34#e2'") [Var 4])] (Let [(7,Comb FuncCall ("LiftCases","liftCasesFunc.or.18._#selFP35#i'") [Var 4])] (Let [(8,Comb FuncCall ("LiftCases","liftCasesFunc.or.18._#selFP36#ff") [Var 4])] (Let [(9,Comb FuncCall ("LiftCases","liftCasesFunc.or.18._#selFP37#vs") [Var 4])] (Comb ConsCall ("Prelude","(,,,)") [Comb ConsCall ("FlatCurry","Or") [Var 5,Var 6],Var 7,Var 8,Var 9])))))))),Func ("LiftCases","liftCasesFunc.or.18._#selFP33#e1'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 209,FuncType (TVar 218) (TVar 218),TCons ("Prelude","[]") [TVar 219]]) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [6,7]) (Case  Flex (Var 7) [Branch (Pattern ("Prelude",":") [8,9]) (Case  Flex (Var 9) [Branch (Pattern ("Prelude","[]") []) (Var 6)])])])])),Func ("LiftCases","liftCasesFunc.or.18._#selFP34#e2'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 209,FuncType (TVar 218) (TVar 218),TCons ("Prelude","[]") [TVar 219]]) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [6,7]) (Case  Flex (Var 7) [Branch (Pattern ("Prelude",":") [8,9]) (Case  Flex (Var 9) [Branch (Pattern ("Prelude","[]") []) (Var 8)])])])])),Func ("LiftCases","liftCasesFunc.or.18._#selFP35#i'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 209,FuncType (TVar 218) (TVar 218),TCons ("Prelude","[]") [TVar 219]]) (TVar 209)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [6,7]) (Case  Flex (Var 7) [Branch (Pattern ("Prelude",":") [8,9]) (Case  Flex (Var 9) [Branch (Pattern ("Prelude","[]") []) (Var 3)])])])])),Func ("LiftCases","liftCasesFunc.or.18._#selFP36#ff") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 209,FuncType (TVar 218) (TVar 218),TCons ("Prelude","[]") [TVar 219]]) (FuncType (TVar 218) (TVar 218))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [6,7]) (Case  Flex (Var 7) [Branch (Pattern ("Prelude",":") [8,9]) (Case  Flex (Var 9) [Branch (Pattern ("Prelude","[]") []) (Var 4)])])])])),Func ("LiftCases","liftCasesFunc.or.18._#selFP37#vs") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TVar 209,FuncType (TVar 218) (TVar 218),TCons ("Prelude","[]") [TVar 219]]) (TCons ("Prelude","[]") [TVar 219])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [6,7]) (Case  Flex (Var 7) [Branch (Pattern ("Prelude",":") [8,9]) (Case  Flex (Var 9) [Branch (Pattern ("Prelude","[]") []) (Var 5)])])])])),Func ("LiftCases","liftCasesFunc.casE.18") 6 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("FlatCurry","CaseType") []) (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TVar 1) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])) (FuncType (TCons ("Prelude","[]") [FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","BranchExpr") [],TCons ("Prelude","Int") [],FuncType (TVar 1) (TVar 1),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])]) (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TVar 1) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]))))))) (Rule [1,2,3,4,5,6] (Let [(7,Comb FuncCall ("Prelude","apply") [Var 4,Var 6])] (Let [(8,Comb FuncCall ("LiftCases","liftCasesFunc.casE.18._#selFP44#e'") [Var 7])] (Let [(9,Comb FuncCall ("LiftCases","liftCasesFunc.casE.18._#selFP45#i'") [Var 7])] (Let [(10,Comb FuncCall ("LiftCases","liftCasesFunc.casE.18._#selFP46#ffe") [Var 7])] (Let [(11,Comb FuncCall ("LiftCases","liftCasesFunc.casE.18._#selFP47#ve") [Var 7])] (Let [(12,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("LiftCases","fold") [Var 9],Var 5])] (Let [(13,Comb FuncCall ("LiftCases","liftCasesFunc.casE.18._#selFP40#bs'") [Var 12])] (Let [(14,Comb FuncCall ("LiftCases","liftCasesFunc.casE.18._#selFP41#i''") [Var 12])] (Let [(15,Comb FuncCall ("LiftCases","liftCasesFunc.casE.18._#selFP42#ffbs") [Var 12])] (Let [(16,Comb FuncCall ("LiftCases","liftCasesFunc.casE.18._#selFP43#vbs") [Var 12])] (Let [(17,Comb FuncCall ("LiftCases","nub") [Comb FuncCall ("Prelude","++") [Var 11,Var 16]])] (Let [(18,Case  Rigid (Var 8) [Branch (Pattern ("FlatCurry","Var") [19]) (Comb FuncCall ("List","delete") [Var 19,Var 17]),Branch (Pattern ("FlatCurry","Lit") [20]) (Var 17),Branch (Pattern ("FlatCurry","Comb") [21,22,23]) (Var 17),Branch (Pattern ("FlatCurry","Let") [24,25]) (Var 17),Branch (Pattern ("FlatCurry","Free") [26,27]) (Var 17),Branch (Pattern ("FlatCurry","Or") [28,29]) (Var 17),Branch (Pattern ("FlatCurry","Case") [30,31,32]) (Var 17)])] (Comb ConsCall ("Prelude","(,,,)") [Comb FuncCall ("LiftCases","genFuncCall") [Var 2,Var 1,Var 14,Var 18,Var 8],Comb FuncCall ("Prelude","+") [Var 14,Lit (Intc  1)],Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("Prelude",":") [Comb FuncCall ("LiftCases","genFunc") [Var 2,Var 1,Var 14,Var 18,Var 8,Var 3,Var 13]],Comb FuncCall ("Prelude",".") [Var 10,Var 15]],Var 17])))))))))))))),Func ("LiftCases","liftCasesFunc.casE.18._#selFP44#e'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TVar 238) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("LiftCases","liftCasesFunc.casE.18._#selFP45#i'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TVar 238) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("LiftCases","liftCasesFunc.casE.18._#selFP46#ffe") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TVar 238) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (FuncType (TVar 238) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("LiftCases","liftCasesFunc.casE.18._#selFP47#ve") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TVar 238) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 5)])),Func ("LiftCases","liftCasesFunc.casE.18._#selFP40#bs'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","BranchExpr") []],TCons ("Prelude","Int") [],FuncType (TVar 238) (TVar 238),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","[]") [TCons ("FlatCurry","BranchExpr") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("LiftCases","liftCasesFunc.casE.18._#selFP41#i''") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","BranchExpr") []],TCons ("Prelude","Int") [],FuncType (TVar 238) (TVar 238),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("LiftCases","liftCasesFunc.casE.18._#selFP42#ffbs") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","BranchExpr") []],TCons ("Prelude","Int") [],FuncType (TVar 238) (TVar 238),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (FuncType (TVar 238) (TVar 238))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("LiftCases","liftCasesFunc.casE.18._#selFP43#vbs") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","BranchExpr") []],TCons ("Prelude","Int") [],FuncType (TVar 238) (TVar 238),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 5)])),Func ("LiftCases","liftCasesFunc.branch.18") 3 Private (FuncType (TCons ("FlatCurry","Pattern") []) (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 1,TVar 2,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])) (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","BranchExpr") [],TVar 1,TVar 2,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])))) (Rule [1,2,3] (Let [(4,Comb FuncCall ("Prelude","apply") [Var 2,Var 3])] (Let [(5,Comb FuncCall ("LiftCases","liftCasesFunc.branch.18._#selFP49#e'") [Var 4])] (Let [(6,Comb FuncCall ("LiftCases","liftCasesFunc.branch.18._#selFP50#i'") [Var 4])] (Let [(7,Comb FuncCall ("LiftCases","liftCasesFunc.branch.18._#selFP51#ff") [Var 4])] (Let [(8,Comb FuncCall ("LiftCases","liftCasesFunc.branch.18._#selFP52#ve") [Var 4])] (Comb ConsCall ("Prelude","(,,,)") [Comb ConsCall ("FlatCurry","Branch") [Var 1,Var 5],Var 6,Var 7,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("LiftCases","removePVars") [Var 8],Var 1]]))))))),Func ("LiftCases","liftCasesFunc.branch.18._#selFP49#e'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 260,TVar 261,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("LiftCases","liftCasesFunc.branch.18._#selFP50#i'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 260,TVar 261,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TVar 260)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("LiftCases","liftCasesFunc.branch.18._#selFP51#ff") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 260,TVar 261,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TVar 261)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("LiftCases","liftCasesFunc.branch.18._#selFP52#ve") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TVar 260,TVar 261,TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 5)])),Func ("LiftCases","liftCasesFunc._#selFP58#e'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("LiftCases","liftCasesFunc._#selFP59#i'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("LiftCases","liftCasesFunc._#selFP60#ffe") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("LiftCases","liftCasesFunc._#lambda3") 2 Private (FuncType (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]))) (FuncType (TCons ("FlatCurry","BranchExpr") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","BranchExpr") [],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]])))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("FlatCurry","Branch") [3,4]) (Comb (FuncPartCall 1) ("LiftCases","liftCasesFunc.branch.18") [Var 3,Comb FuncCall ("Prelude","apply") [Var 1,Var 4]])])),Func ("LiftCases","liftCasesFunc._#selFP55#bs'") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","BranchExpr") []],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","[]") [TCons ("FlatCurry","BranchExpr") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("LiftCases","liftCasesFunc._#selFP56#i''") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","BranchExpr") []],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("LiftCases","liftCasesFunc._#selFP57#ffbs") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","BranchExpr") []],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("LiftCases","liftCasesFunc._#selFP61#exp") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("LiftCases","liftCasesFunc._#selFP62#iMain") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("LiftCases","liftCasesFunc._#selFP63#ffeMain") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TCons ("FlatCurry","Expr") [],TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("LiftCases","fold") 1 Private (FuncType (TVar 0) (FuncType (TCons ("Prelude","[]") [FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TVar 1,TVar 0,FuncType (TVar 2) (TVar 2),TCons ("Prelude","[]") [TVar 3]])]) (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TVar 1],TVar 0,FuncType (TVar 2) (TVar 2),TCons ("Prelude","[]") [TVar 3]]))) (Rule [1] (Comb (FuncPartCall 1) ("Prelude","foldr") [Comb (FuncPartCall 2) ("LiftCases","fold.once.74") [],Comb ConsCall ("Prelude","(,,,)") [Comb ConsCall ("Prelude","[]") [],Var 1,Comb (FuncPartCall 1) ("Prelude","id") [],Comb ConsCall ("Prelude","[]") []]])),Func ("LiftCases","fold.once.74") 2 Private (FuncType (FuncType (TVar 0) (TCons ("Prelude","(,,,)") [TVar 1,TVar 2,FuncType (TVar 3) (TVar 4),TCons ("Prelude","[]") [TVar 5]])) (FuncType (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TVar 1],TVar 0,FuncType (TVar 4) (TVar 6),TCons ("Prelude","[]") [TVar 5]]) (TCons ("Prelude","(,,,)") [TCons ("Prelude","[]") [TVar 1],TVar 2,FuncType (TVar 3) (TVar 6),TCons ("Prelude","[]") [TVar 5]]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","(,,,)") [3,4,5,6]) (Let [(7,Comb FuncCall ("Prelude","apply") [Var 1,Var 4])] (Let [(8,Comb FuncCall ("LiftCases","fold.once.74._#selFP65#e") [Var 7])] (Let [(9,Comb FuncCall ("LiftCases","fold.once.74._#selFP66#k") [Var 7])] (Let [(10,Comb FuncCall ("LiftCases","fold.once.74._#selFP67#ff2") [Var 7])] (Let [(11,Comb FuncCall ("LiftCases","fold.once.74._#selFP68#vs2") [Var 7])] (Comb ConsCall ("Prelude","(,,,)") [Comb ConsCall ("Prelude",":") [Var 8,Var 3],Var 9,Comb FuncCall ("Prelude",".") [Var 5,Var 10],Comb FuncCall ("Prelude","++") [Var 6,Var 11]]))))))])),Func ("LiftCases","fold.once.74._#selFP65#e") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TVar 21,TVar 22,FuncType (TVar 30) (TVar 28),TCons ("Prelude","[]") [TVar 31]]) (TVar 21)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 2)])),Func ("LiftCases","fold.once.74._#selFP66#k") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TVar 21,TVar 22,FuncType (TVar 30) (TVar 28),TCons ("Prelude","[]") [TVar 31]]) (TVar 22)) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 3)])),Func ("LiftCases","fold.once.74._#selFP67#ff2") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TVar 21,TVar 22,FuncType (TVar 30) (TVar 28),TCons ("Prelude","[]") [TVar 31]]) (FuncType (TVar 30) (TVar 28))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 4)])),Func ("LiftCases","fold.once.74._#selFP68#vs2") 1 Private (FuncType (TCons ("Prelude","(,,,)") [TVar 21,TVar 22,FuncType (TVar 30) (TVar 28),TCons ("Prelude","[]") [TVar 31]]) (TCons ("Prelude","[]") [TVar 31])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,,,)") [2,3,4,5]) (Var 5)])),Func ("LiftCases","genFuncCall") 5 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") [])))))) (Rule [1,2,3,4,5] (Comb ConsCall ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","FuncCall") [],Comb ConsCall ("Prelude","(,)") [Var 1,Comb FuncCall ("Prelude","++") [Var 2,Comb FuncCall ("Prelude","show") [Var 3]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","map") [Comb (ConsPartCall 1) ("FlatCurry","Var") [],Var 4],Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []]]])),Func ("LiftCases","genFunc") 7 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("FlatCurry","CaseType") []) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","BranchExpr") []]) (TCons ("FlatCurry","FuncDecl") [])))))))) (Rule [1,2,3,4,5,6,7] (Let [(8,Case  Rigid (Var 5) [Branch (Pattern ("FlatCurry","Var") [9]) (Var 9),Branch (Pattern ("FlatCurry","Lit") [10]) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("Prelude","max") [],Lit (Intc  0),Comb FuncCall ("Prelude","++") [Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("LiftCases","genFunc.allVarsBranch.82") []],Var 7]]],Lit (Intc  1)]),Branch (Pattern ("FlatCurry","Comb") [11,12,13]) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("Prelude","max") [],Lit (Intc  0),Comb FuncCall ("Prelude","++") [Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("LiftCases","genFunc.allVarsBranch.82") []],Var 7]]],Lit (Intc  1)]),Branch (Pattern ("FlatCurry","Let") [14,15]) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("Prelude","max") [],Lit (Intc  0),Comb FuncCall ("Prelude","++") [Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("LiftCases","genFunc.allVarsBranch.82") []],Var 7]]],Lit (Intc  1)]),Branch (Pattern ("FlatCurry","Free") [16,17]) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("Prelude","max") [],Lit (Intc  0),Comb FuncCall ("Prelude","++") [Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("LiftCases","genFunc.allVarsBranch.82") []],Var 7]]],Lit (Intc  1)]),Branch (Pattern ("FlatCurry","Or") [18,19]) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("Prelude","max") [],Lit (Intc  0),Comb FuncCall ("Prelude","++") [Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("LiftCases","genFunc.allVarsBranch.82") []],Var 7]]],Lit (Intc  1)]),Branch (Pattern ("FlatCurry","Case") [20,21,22]) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","foldr") [Comb (FuncPartCall 2) ("Prelude","max") [],Lit (Intc  0),Comb FuncCall ("Prelude","++") [Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("LiftCases","genFunc.allVarsBranch.82") []],Var 7]]],Lit (Intc  1)])])] (Comb FuncCall ("Prelude","$") [Comb (ConsPartCall 1) ("FlatCurry","Func") [Comb ConsCall ("Prelude","(,)") [Var 1,Comb FuncCall ("Prelude","++") [Var 2,Comb FuncCall ("Prelude","show") [Var 3]]],Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","length") [Var 4],Lit (Intc  1)],Comb ConsCall ("FlatCurry","Private") [],Comb ConsCall ("FlatCurry","TVar") [Comb FuncCall ("Prelude","negate") [Lit (Intc  42)]]],Comb ConsCall ("FlatCurry","Rule") [Comb FuncCall ("Prelude","++") [Var 4,Comb ConsCall ("Prelude",":") [Var 8,Comb ConsCall ("Prelude","[]") []]],Comb ConsCall ("FlatCurry","Case") [Var 6,Comb ConsCall ("FlatCurry","Var") [Var 8],Var 7]]]))),Func ("LiftCases","genFunc.allVarsBranch.82") 1 Private (FuncType (TCons ("FlatCurry","BranchExpr") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("FlatCurry","Branch") [2,3]) (Comb FuncCall ("Prelude","++") [Comb FuncCall ("FlatCurryGoodies","trPattern") [Comb (FuncPartCall 2) ("LiftCases","genFunc.allVarsBranch.82._#lambda6") [],Comb (FuncPartCall 1) ("LiftCases","genFunc.allVarsBranch.82._#lambda7") [],Var 2],Comb FuncCall ("FlatCurryGoodies","allVars") [Var 3]])])),Func ("LiftCases","genFunc.allVarsBranch.82._#lambda6") 2 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1,2] (Var 2)),Func ("LiftCases","genFunc.allVarsBranch.82._#lambda7") 1 Private (FuncType (TCons ("FlatCurry","Literal") []) (TCons ("Prelude","[]") [TVar 262])) (Rule [1] (Comb ConsCall ("Prelude","[]") [])),Func ("LiftCases","removePVars") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","Pattern") []) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]))) (Rule [1] (Comb (FuncPartCall 1) ("FlatCurryGoodies","trPattern") [Comb (FuncPartCall 2) ("LiftCases","removePVars._#lambda8") [Var 1],Comb (FuncPartCall 1) ("Prelude","const") [Var 1]])),Func ("LiftCases","removePVars._#lambda8") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","not") [],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("LiftCases","elemOf") [],Var 3]],Var 1])),Func ("LiftCases","genAuxName") 0 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","foldl") [Comb (FuncPartCall 2) ("LiftCases","addUnderscores") [],Comb ConsCall ("Prelude",":") [Lit (Charc  '_'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  '_'),Comb ConsCall ("Prelude","[]") []]]]]]]])),Func ("LiftCases","addUnderscores") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("List","isPrefixOf") [Var 1,Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("LiftCases","addUnderscores") [Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  '_'),Comb ConsCall ("Prelude","[]") []]],Var 2]),Branch (Pattern ("Prelude","False") []) (Var 1)])),Func ("LiftCases","elemOf") 0 Private (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TVar 0) (TCons ("Prelude","Bool") []))) (Rule [] (Comb (FuncPartCall 2) ("Prelude","flip") [Comb (FuncPartCall 1) ("Prelude","elem") []])),Func ("LiftCases","nub") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []])) (Rule [1] (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","fst") []],Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("FiniteMap","fmToList") [],Comb FuncCall ("Prelude","$") [Comb FuncCall ("FiniteMap","listToFM") [Comb (FuncPartCall 2) ("Prelude","<") []],Comb FuncCall ("Prelude","zip") [Var 1,Comb FuncCall ("Prelude","repeat") [Comb ConsCall ("Prelude","()") []]]]]]))] []
diff --git a/Curry/Module/LiftCases.fint b/Curry/Module/LiftCases.fint
new file mode 100644
--- /dev/null
+++ b/Curry/Module/LiftCases.fint
@@ -0,0 +1,1 @@
+Prog "LiftCases" ["FiniteMap","FlatCurry","FlatCurryGoodies","List","Prelude"] [TypeSyn ("LiftCases","FuncList") Private [] (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])),TypeSyn ("LiftCases","Result") Private [] (TCons ("Prelude","(,,)") [FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]),TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])])] [Func ("LiftCases","isCaseAuxFuncName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("LiftCases","isCaseAuxFuncType") 1 Public (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("LiftCases","liftCases") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("FlatCurry","Prog") []))) (Rule [] (Var 0))] []
diff --git a/Curry/Module/Make.curry b/Curry/Module/Make.curry
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Make.curry
@@ -0,0 +1,179 @@
+-------------------------------------------------------
+-- This module provides basic make functionality for 
+-- curry programs. The provided actions traverse the
+-- import tree and execute a given action only if 
+-- necessary.
+-------------------------------------------------------
+
+module Make (
+  ModuleName,
+  Path,
+  FileName,
+  make, makeWithFrontendParams, obsolete, unless,
+
+  parseArgs,Parameter,
+  quiet,force,modulename,output) where
+
+import FlatCurry
+import FlatCurryGoodies (progImports)
+import Distribution as D
+import FiniteMap
+import IOExts
+import Sort (leqString)
+import FileGoodies 
+import Time
+import Directory
+import System (getArgs)
+
+type ModuleName = String
+type Path       = String
+type FileName   = String
+
+type TestAct a = Path -> ModuleName -> IO (Maybe a)
+type ProgAct a = Path -> [a] -> Prog -> IO a
+
+type Done a = IORef (FM String a)
+
+data Parameter = Parameter Bool Bool (Maybe String) (Maybe String) String
+
+defaults :: Parameter
+defaults = Parameter False False Nothing Nothing ""
+
+type Getter a = Parameter -> a
+type Setter a = a -> Parameter -> Parameter
+
+quiet :: Getter Bool
+quiet (Parameter x _ _  _ _) = x
+
+setQuiet :: Setter Bool
+setQuiet x (Parameter _ y z e m) = Parameter x y z e m
+
+force :: Getter Bool
+force (Parameter _ x _ _ _) = x
+
+setForce :: Setter Bool
+setForce x (Parameter y _ z e m) = Parameter y x z e m
+
+output :: Getter (Maybe String)
+output (Parameter _ _ x _ _) = x
+
+setOutput :: Setter (Maybe String)
+setOutput x (Parameter y z _ e m) = Parameter y z x e m
+
+main :: Getter (Maybe String)
+main (Parameter _ _ _ x _) = x
+
+setMain :: Setter (Maybe String)
+setMain x (Parameter y z m _ e) = Parameter y z m x e
+
+modulename :: Getter String
+modulename (Parameter _ _ _ _ x) = x
+
+setModulename :: Setter String
+setModulename x (Parameter y z m e _) = Parameter y z m e x
+
+parseArgs :: IO Parameter
+parseArgs = getArgs >>= return . parse defaults
+  where
+    parse _ []      = usage
+    parse p (x:xs) 
+     | x=="-q"      = parse (setQuiet True p) xs
+     | x=="--quiet" = parse (setQuiet True p) xs
+     | x=="-f"      = parse (setForce True p) xs
+     | x=="--force" = parse (setForce True p) xs
+     | x=="-o"      = case xs of
+                       o:xs' -> parse (setOutput (Just o) p) xs'
+     | x=="-m"      = case xs of
+                       o:xs' -> parse (setMain (Just o) p) xs'
+     | null xs      = setModulename x p
+    
+    usage = error "usage: <-f/--force> <-q/--quiet> <-o outputdir> modulename"
+
+--- calls act on each imported module transitively
+--- if test returns Nothing.
+make :: Bool -> ModuleName -> TestAct a -> ProgAct a -> IO ()
+make = makeWithFrontendParams defaultParams
+
+makeWithFrontendParams :: FrontendParams -> Bool -> ModuleName -> TestAct a -> ProgAct a -> IO ()
+makeWithFrontendParams givenParams qu file test act = do
+  let (dir,modu) = splitDirectoryBaseName file
+  path <- maybe getLoadPath return (fullPath givenParams)
+  let loadPath = if dir=="." then path else dir:path
+      params   = setFullPath loadPath givenParams
+  mCurryFile  <- lookupFileInPath modu [".curry",".lcurry"] loadPath
+  unless (mCurryFile==Nothing)
+         (do
+           unless qu $ putStrLn "ensuring existence of fcy/fint files..."
+           callFrontendWithParams FCY (D.setQuiet True params) modu
+           unless qu $ putStrLn "...ensured")
+  done <- newIORef (emptyFM (\ x y -> not (leqString x y)))
+  workUpDependence loadPath done test act modu
+  return ()
+
+workUpDependence :: [String] -> Done a -> TestAct a -> ProgAct a -> ModuleName -> IO a
+workUpDependence path done test act modu = do
+  fm <- readIORef done
+  maybe (process path done test act modu) return (lookupFM fm modu)
+
+process :: [String] -> Done a -> TestAct a -> ProgAct a ->  ModuleName -> IO a
+process path done test act modu = do
+  fn <- getFileInPath (modu++".fcy") [""] path
+  imps <- fastReadImports fn >>= mapIO (workUpDependence path done test act)
+  let dir = dirName fn++"/"
+  result <- test dir modu >>= 
+            maybe (readFlatCurryFile fn >>= act dir imps) return 
+  updateIORef done (\fm -> addToFM fm modu result)
+  return result
+
+--- a standard test if a given file is newer than a list of other files
+--- if other files do not exist, the given file is assumed to be up-to-date
+--- on up-to-date files a given action is performed
+obsolete :: Bool -> (String -> String -> String) -> [String -> String] 
+         -> ([String] -> IO a) -> TestAct a
+obsolete qu f fs action dir modu = do
+  let fn  = f dir modu
+      fns = map ((dir++).($modu)) fs
+  ex <- doesFileExist fn
+  if ex then do
+               t  <- getModificationTime fn
+               ns <- mapIO (isNewerThan t) fns
+               if or ns
+                 then do
+                   unless qu $ putStrLn $ "obsolete  : " ++ fn
+                   return Nothing
+                 else do
+                   unless qu $ putStrLn $ "up-to-date: " ++ fn
+                   action fns >>= return . Just
+        else do unless qu $ putStrLn ("missing   : "++ fn) 
+                return Nothing
+ where
+   isNewerThan t file = do 
+     ex <- doesFileExist file
+     if not ex then return False else do
+      t' <- getModificationTime file
+      return (compareClockTime t t'/=GT)
+
+fastReadImports :: FileName -> IO [String]
+fastReadImports fn = do 
+  cont <- readFile fn
+  return (strings (takeWhile (/=']') (dropWhile (/='[') cont)))
+
+strings :: String -> [String]
+strings [] = []
+strings (c:cs) | c=='"' = case break (=='"') cs of
+                            (s,_:rest) -> s : strings rest
+               | otherwise = strings cs
+
+updateIORef :: IORef a -> (a -> a) -> IO ()
+updateIORef ref f = do
+  x <- readIORef ref
+  writeIORef ref (f x)
+
+unless :: Bool -> IO () -> IO ()
+unless True  _   = return ()
+unless False act = act
+
+  
+
+  
+  
diff --git a/Curry/Module/Make.fcy b/Curry/Module/Make.fcy
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Make.fcy
@@ -0,0 +1,1 @@
+Prog "Make" ["Directory","Distribution","FileGoodies","FiniteMap","FlatCurry","IOExts","Prelude","Sort","System","Time","FlatCurryGoodies"] [TypeSyn ("Make","ModuleName") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]),TypeSyn ("Make","Path") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]),TypeSyn ("Make","FileName") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]),TypeSyn ("Make","TestAct") Private [0] (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]]))),TypeSyn ("Make","ProgAct") Private [0] (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 0])))),TypeSyn ("Make","Done") Private [0] (TCons ("IOExts","IORef") [TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0]]),TypeSyn ("Make","Getter") Private [0] (FuncType (TCons ("Make","Parameter") []) (TVar 0)),TypeSyn ("Make","Setter") Private [0] (FuncType (TVar 0) (FuncType (TCons ("Make","Parameter") []) (TCons ("Make","Parameter") []))),Type ("Make","Parameter") Public [] [Cons ("Make","Parameter") 5 Private [TCons ("Prelude","Bool") [],TCons ("Prelude","Bool") [],TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]] [Func ("Make","defaults") 0 Private (TCons ("Make","Parameter") []) (Rule [] (Comb ConsCall ("Make","Parameter") [Comb ConsCall ("Prelude","False") [],Comb ConsCall ("Prelude","False") [],Comb ConsCall ("Prelude","Nothing") [],Comb ConsCall ("Prelude","Nothing") [],Comb ConsCall ("Prelude","[]") []])),Func ("Make","quiet") 1 Public (FuncType (TCons ("Make","Parameter") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Make","Parameter") [2,3,4,5,6]) (Var 2)])),Func ("Make","setQuiet") 2 Private (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Make","Parameter") []) (TCons ("Make","Parameter") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Make","Parameter") [3,4,5,6,7]) (Comb ConsCall ("Make","Parameter") [Var 1,Var 4,Var 5,Var 6,Var 7])])),Func ("Make","force") 1 Public (FuncType (TCons ("Make","Parameter") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Make","Parameter") [2,3,4,5,6]) (Var 3)])),Func ("Make","setForce") 2 Private (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Make","Parameter") []) (TCons ("Make","Parameter") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Make","Parameter") [3,4,5,6,7]) (Comb ConsCall ("Make","Parameter") [Var 3,Var 1,Var 5,Var 6,Var 7])])),Func ("Make","output") 1 Public (FuncType (TCons ("Make","Parameter") []) (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Make","Parameter") [2,3,4,5,6]) (Var 4)])),Func ("Make","setOutput") 2 Private (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Make","Parameter") []) (TCons ("Make","Parameter") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Make","Parameter") [3,4,5,6,7]) (Comb ConsCall ("Make","Parameter") [Var 3,Var 4,Var 1,Var 6,Var 7])])),Func ("Make","main") 1 Private (FuncType (TCons ("Make","Parameter") []) (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Make","Parameter") [2,3,4,5,6]) (Var 5)])),Func ("Make","setMain") 2 Private (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Make","Parameter") []) (TCons ("Make","Parameter") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Make","Parameter") [3,4,5,6,7]) (Comb ConsCall ("Make","Parameter") [Var 3,Var 4,Var 5,Var 1,Var 7])])),Func ("Make","modulename") 1 Public (FuncType (TCons ("Make","Parameter") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Make","Parameter") [2,3,4,5,6]) (Var 6)])),Func ("Make","setModulename") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Make","Parameter") []) (TCons ("Make","Parameter") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Make","Parameter") [3,4,5,6,7]) (Comb ConsCall ("Make","Parameter") [Var 3,Var 4,Var 5,Var 6,Var 1])])),Func ("Make","parseArgs") 0 Public (TCons ("Prelude","IO") [TCons ("Make","Parameter") []]) (Rule [] (Let [(1,Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '<'),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  '/'),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  '>'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '<'),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  '/'),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  '>'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  '<'),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  '>'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("System","getArgs") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (FuncPartCall 1) ("Make","parseArgs.parse.50") [Var 1,Comb FuncCall ("Make","defaults") []]]]))),Func ("Make","parseArgs.parse.50") 3 Private (FuncType (TCons ("Make","Parameter") []) (FuncType (TCons ("Make","Parameter") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Make","Parameter") [])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Var 1),Branch (Pattern ("Prelude",":") [4,5]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude","[]") []]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Make","parseArgs.parse.50") [Var 1,Comb FuncCall ("Make","setQuiet") [Comb ConsCall ("Prelude","True") [],Var 2],Var 5]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'q'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]]]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Make","parseArgs.parse.50") [Var 1,Comb FuncCall ("Make","setQuiet") [Comb ConsCall ("Prelude","True") [],Var 2],Var 5]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude","[]") []]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Make","parseArgs.parse.50") [Var 1,Comb FuncCall ("Make","setForce") [Comb ConsCall ("Prelude","True") [],Var 2],Var 5]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Make","parseArgs.parse.50") [Var 1,Comb FuncCall ("Make","setForce") [Comb ConsCall ("Prelude","True") [],Var 2],Var 5]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude","[]") []]]]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Var 5) [Branch (Pattern ("Prelude",":") [6,7]) (Comb FuncCall ("Make","parseArgs.parse.50") [Var 1,Comb FuncCall ("Make","setOutput") [Comb ConsCall ("Prelude","Just") [Var 6],Var 2],Var 7]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","failed") [])]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude","[]") []]]]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Var 5) [Branch (Pattern ("Prelude",":") [8,9]) (Comb FuncCall ("Make","parseArgs.parse.50") [Var 1,Comb FuncCall ("Make","setMain") [Comb ConsCall ("Prelude","Just") [Var 8],Var 2],Var 9]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","failed") [])]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","null") [Var 5]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Make","setModulename") [Var 4,Var 2]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])])])])])),Func ("Make","make") 0 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]]))) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 0])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))) (Rule [] (Comb (FuncPartCall 4) ("Make","makeWithFrontendParams") [Comb FuncCall ("Distribution","defaultParams") []])),Func ("Make","makeWithFrontendParams") 5 Public (FuncType (TCons ("Distribution","FrontendParams") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]]))) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 0])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [1,2,3,4,5] (Let [(6,Comb FuncCall ("FileGoodies","splitDirectoryBaseName") [Var 3])] (Let [(7,Comb FuncCall ("Make","makeWithFrontendParams._#selFP3#dir") [Var 6])] (Let [(8,Comb FuncCall ("Make","makeWithFrontendParams._#selFP4#modu") [Var 6])] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","maybe") [Comb FuncCall ("Distribution","getLoadPath") [],Comb (FuncPartCall 1) ("Prelude","return") [],Comb FuncCall ("Distribution","fullPath") [Var 1]],Comb (FuncPartCall 1) ("Make","makeWithFrontendParams._#lambda4") [Var 5,Var 7,Var 1,Var 8,Var 2,Var 4]]))))),Func ("Make","makeWithFrontendParams._#selFP3#dir") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Make","makeWithFrontendParams._#selFP4#modu") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Make","makeWithFrontendParams._#lambda4") 7 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 209]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 209])))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Distribution","FrontendParams") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 209]]))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))))) (Rule [1,2,3,4,5,6,7] (Let [(8,Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude","[]") []]]) [Branch (Pattern ("Prelude","True") []) (Var 7),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("Prelude",":") [Var 2,Var 7])])] (Let [(9,Comb FuncCall ("Distribution","setFullPath") [Var 8,Var 3])] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("FileGoodies","lookupFileInPath") [Var 4,Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude","[]") []]],Var 8],Comb (FuncPartCall 1) ("Make","makeWithFrontendParams._#lambda4._#lambda5") [Var 1,Var 8,Var 4,Var 9,Var 5,Var 6]])))),Func ("Make","makeWithFrontendParams._#lambda4._#lambda5") 7 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 209]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 209])))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Distribution","FrontendParams") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 209]]))) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))))) (Rule [1,2,3,4,5,6,7] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Make","unless") [Comb FuncCall ("Prelude","==") [Var 7,Comb ConsCall ("Prelude","Nothing") []],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Make","unless") [Var 5],Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),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",":") [Lit (Charc  '/'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Distribution","callFrontendWithParams") [Comb ConsCall ("Distribution","FCY") [],Comb FuncCall ("Distribution","setQuiet") [Comb ConsCall ("Prelude","True") [],Var 4],Var 3],Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Make","unless") [Var 5],Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","newIORef") [Comb FuncCall ("FiniteMap","emptyFM") [Comb (FuncPartCall 2) ("Make","makeWithFrontendParams._#lambda4._#lambda5._#lambda6") []]],Comb (FuncPartCall 1) ("Make","makeWithFrontendParams._#lambda4._#lambda5._#lambda7") [Var 1,Var 2,Var 3,Var 6]]])),Func ("Make","makeWithFrontendParams._#lambda4._#lambda5._#lambda6") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","not") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Sort","leqString") [],Var 1],Var 2]])),Func ("Make","makeWithFrontendParams._#lambda4._#lambda5._#lambda7") 5 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 209]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 209])))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 209]]))) (FuncType (TCons ("IOExts","IORef") [TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 209]]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Make","workUpDependence") [Var 2,Var 5,Var 4,Var 1,Var 3],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","()") []]])),Func ("Make","workUpDependence") 5 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("IOExts","IORef") [TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0]]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]]))) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 0])))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TVar 0])))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 2],Comb (FuncPartCall 1) ("Make","workUpDependence._#lambda8") [Var 4,Var 2,Var 5,Var 1,Var 3]])),Func ("Make","workUpDependence._#lambda8") 6 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 141]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 141])))) (FuncType (TCons ("IOExts","IORef") [TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 141]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 141]]))) (FuncType (TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 141]) (TCons ("Prelude","IO") [TVar 141]))))))) (Rule [1,2,3,4,5,6] (Comb FuncCall ("Prelude","maybe") [Comb FuncCall ("Make","process") [Var 4,Var 2,Var 5,Var 1,Var 3],Comb (FuncPartCall 1) ("Prelude","return") [],Comb FuncCall ("FiniteMap","lookupFM") [Var 6,Var 3]])),Func ("Make","process") 5 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("IOExts","IORef") [TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0]]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]]))) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 0])))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TVar 0])))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("FileGoodies","getFileInPath") [Comb FuncCall ("Prelude","++") [Var 5,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 ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","[]") [],Comb ConsCall ("Prelude","[]") []],Var 1],Comb (FuncPartCall 1) ("Make","process._#lambda9") [Var 4,Var 2,Var 5,Var 1,Var 3]])),Func ("Make","process._#lambda9") 6 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 167]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 167])))) (FuncType (TCons ("IOExts","IORef") [TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 167]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 167]]))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TVar 167]))))))) (Rule [1,2,3,4,5,6] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Make","fastReadImports") [Var 6],Comb FuncCall ("Prelude","mapIO") [Comb (FuncPartCall 1) ("Make","workUpDependence") [Var 4,Var 2,Var 5,Var 1]]],Comb (FuncPartCall 1) ("Make","process._#lambda9._#lambda10") [Var 1,Var 2,Var 6,Var 3,Var 5]])),Func ("Make","process._#lambda9._#lambda10") 6 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 167]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 167])))) (FuncType (TCons ("IOExts","IORef") [TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 167]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 167]]))) (FuncType (TCons ("Prelude","[]") [TVar 167]) (TCons ("Prelude","IO") [TVar 167]))))))) (Rule [1,2,3,4,5,6] (Let [(7,Comb FuncCall ("Prelude","++") [Comb FuncCall ("FileGoodies","dirName") [Var 3],Comb ConsCall ("Prelude",":") [Lit (Charc  '/'),Comb ConsCall ("Prelude","[]") []]])] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 5,Var 7],Var 4],Comb (FuncPartCall 1) ("Prelude","maybe") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("FlatCurry","readFlatCurryFile") [Var 3],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 7],Var 6]],Comb (FuncPartCall 1) ("Prelude","return") []]],Comb (FuncPartCall 1) ("Make","process._#lambda9._#lambda10._#lambda11") [Var 2,Var 4]]))),Func ("Make","process._#lambda9._#lambda10._#lambda11") 3 Private (FuncType (TCons ("IOExts","IORef") [TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 167]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 167) (TCons ("Prelude","IO") [TVar 167])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Make","updateIORef") [Var 1,Comb (FuncPartCall 1) ("Make","process._#lambda9._#lambda10._#lambda11._#lambda12") [Var 2,Var 3]],Comb FuncCall ("Prelude","return") [Var 3]])),Func ("Make","process._#lambda9._#lambda10._#lambda11._#lambda12") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 167) (FuncType (TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 167]) (TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 167])))) (Rule [1,2,3] (Comb FuncCall ("FiniteMap","addToFM") [Var 3,Var 1,Var 2])),Func ("Make","obsolete") 6 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","[]") [FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TVar 0])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]]))))))) (Rule [1,2,3,4,5,6] (Let [(7,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 5],Var 6])] (Let [(8,Comb FuncCall ("Prelude","map") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","++") [Var 5],Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","$") [],Var 6]],Var 3])] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Directory","doesFileExist") [Var 7],Comb (FuncPartCall 1) ("Make","obsolete._#lambda15") [Var 4,Var 7,Var 8,Var 1]])))),Func ("Make","obsolete.isNewerThan.86") 2 Private (FuncType (TCons ("Time","ClockTime") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Directory","doesFileExist") [Var 2],Comb (FuncPartCall 1) ("Make","obsolete.isNewerThan.86._#lambda13") [Var 2,Var 1]])),Func ("Make","obsolete.isNewerThan.86._#lambda13") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Time","ClockTime") []) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []])))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("Prelude","not") [Var 3]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","False") []]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Directory","getModificationTime") [Var 1],Comb (FuncPartCall 1) ("Make","obsolete.isNewerThan.86._#lambda13._#lambda14") [Var 2]])])),Func ("Make","obsolete.isNewerThan.86._#lambda13._#lambda14") 2 Private (FuncType (TCons ("Time","ClockTime") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Prelude","IO") [TCons ("Prelude","Bool") []]))) (Rule [1,2] (Comb FuncCall ("Prelude","return") [Comb FuncCall ("Prelude","/=") [Comb FuncCall ("Time","compareClockTime") [Var 1,Var 2],Comb ConsCall ("Prelude","GT") []]])),Func ("Make","obsolete._#lambda15") 5 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TVar 287])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 287]])))))) (Rule [1,2,3,4,5] (Case  Rigid (Var 5) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Directory","getModificationTime") [Var 2],Comb (FuncPartCall 1) ("Make","obsolete._#lambda15._#lambda16") [Var 1,Var 2,Var 3,Var 4]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Make","unless") [Var 4],Comb FuncCall ("Prelude","putStrLn") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]],Var 2]]],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","Nothing") []]])])),Func ("Make","obsolete._#lambda15._#lambda16") 5 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TVar 287])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Time","ClockTime") []) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 287]])))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","mapIO") [Comb (FuncPartCall 1) ("Make","obsolete.isNewerThan.86") [Var 5]],Var 3],Comb (FuncPartCall 1) ("Make","obsolete._#lambda15._#lambda16._#lambda17") [Var 1,Var 2,Var 3,Var 4]])),Func ("Make","obsolete._#lambda15._#lambda16._#lambda17") 5 Private (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TVar 287])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 287]])))))) (Rule [1,2,3,4,5] (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","or") [],Var 5]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Make","unless") [Var 4],Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","putStrLn") [],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]],Var 2]]],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","Nothing") []]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Make","unless") [Var 4],Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","putStrLn") [],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  '-'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]],Var 2]]],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (ConsPartCall 1) ("Prelude","Just") []]]])])),Func ("Make","fastReadImports") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","readFile") [Var 1],Comb (FuncPartCall 1) ("Make","fastReadImports._#lambda18") []])),Func ("Make","fastReadImports._#lambda18") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]])) (Rule [1] (Comb FuncCall ("Prelude","return") [Comb FuncCall ("Make","strings") [Comb FuncCall ("Prelude","takeWhile") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Lit (Charc  ']')],Comb FuncCall ("Prelude","dropWhile") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Lit (Charc  '[')],Var 1]]]])),Func ("Make","strings") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [2,3]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 2,Lit (Charc  '"')]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","break") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","==") [],Lit (Charc  '"')]],Var 3]) [Branch (Pattern ("Prelude","(,)") [4,5]) (Case  Rigid (Var 5) [Branch (Pattern ("Prelude",":") [6,7]) (Comb ConsCall ("Prelude",":") [Var 4,Comb FuncCall ("Make","strings") [Var 7]]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","failed") [])])]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Make","strings") [Var 3]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])),Func ("Make","updateIORef") 2 Private (FuncType (TCons ("IOExts","IORef") [TVar 0]) (FuncType (FuncType (TVar 0) (TVar 0)) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("Make","updateIORef._#lambda20") [Var 2,Var 1]])),Func ("Make","updateIORef._#lambda20") 3 Private (FuncType (FuncType (TVar 127) (TVar 127)) (FuncType (TCons ("IOExts","IORef") [TVar 127]) (FuncType (TVar 127) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("IOExts","writeIORef") [Var 2,Comb FuncCall ("Prelude","apply") [Var 1,Var 3]])),Func ("Make","unless") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","IO") [TCons ("Prelude","()") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","()") []]),Branch (Pattern ("Prelude","False") []) (Var 2)]))] []
diff --git a/Curry/Module/Make.fint b/Curry/Module/Make.fint
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Make.fint
@@ -0,0 +1,1 @@
+Prog "Make" ["Directory","Distribution","FileGoodies","FiniteMap","FlatCurry","IOExts","Prelude","Sort","System","Time","FlatCurryGoodies"] [TypeSyn ("Make","ModuleName") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]),TypeSyn ("Make","Path") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]),TypeSyn ("Make","FileName") Public [] (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]),TypeSyn ("Make","TestAct") Private [0] (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]]))),TypeSyn ("Make","ProgAct") Private [0] (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 0])))),TypeSyn ("Make","Done") Private [0] (TCons ("IOExts","IORef") [TCons ("FiniteMap","FM") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0]]),TypeSyn ("Make","Getter") Private [0] (FuncType (TCons ("Make","Parameter") []) (TVar 0)),TypeSyn ("Make","Setter") Private [0] (FuncType (TVar 0) (FuncType (TCons ("Make","Parameter") []) (TCons ("Make","Parameter") []))),Type ("Make","Parameter") Public [] []] [Func ("Make","quiet") 1 Public (FuncType (TCons ("Make","Parameter") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Make","force") 1 Public (FuncType (TCons ("Make","Parameter") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Make","output") 1 Public (FuncType (TCons ("Make","Parameter") []) (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]])) (Rule [] (Var 0)),Func ("Make","modulename") 1 Public (FuncType (TCons ("Make","Parameter") []) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("Make","parseArgs") 0 Public (TCons ("Prelude","IO") [TCons ("Make","Parameter") []]) (Rule [] (Var 0)),Func ("Make","make") 0 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]]))) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 0])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))) (Rule [] (Var 0)),Func ("Make","makeWithFrontendParams") 5 Public (FuncType (TCons ("Distribution","FrontendParams") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]]))) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TVar 0])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [] (Var 0)),Func ("Make","obsolete") 6 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]))) (FuncType (TCons ("Prelude","[]") [FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TVar 0])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TVar 0]]))))))) (Rule [] (Var 0)),Func ("Make","unless") 2 Public (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","IO") [TCons ("Prelude","()") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [] (Var 0))] []
diff --git a/Curry/Module/Oracle.curry b/Curry/Module/Oracle.curry
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Oracle.curry
@@ -0,0 +1,128 @@
+--- Provides the interface that is used to generate and send events.
+---
+--- @version Feb, 2007
+---
+module Oracle (
+  Ref, 
+
+  partCons, partFunc, partCall,
+  apply, ($!) ,($!!), ($#), ($##), (>>=),
+  compose, unknown,
+
+  oracle, oracleIO,
+
+  fresh, replace, collapse, closeRef, expand
+
+  )where
+
+import IOExts (getAssoc)
+import CEventOracle
+import qualified Meta
+import qualified Unsafe (unsafePerformIO)
+--import Global
+
+--extFileName :: Global String
+--extFileName = global "" Temporary
+
+infixr 0 $!, $!!, $#, $##
+
+--- Wrapper for constructor with one missing argument.
+--  We have to close the reference here, since
+--  a value is constructed
+partCons :: (a -> b) -> Ref -> a -> b
+partCons c r x = closeRef r (c x)
+-- partCons c r = collapse r c
+
+--- Wrapper for function with one missing argument.
+--  We should not count a step here, since
+--  the wrapper is not part of the original program.
+partFunc :: (a -> Ref -> b) -> Ref -> a -> b
+partFunc f r x = f x r
+
+--- Wrapper for call with more than one missing argument.
+partCall :: a -> Ref -> a
+partCall x r = closeRef r x
+
+--- Wrapper for apply function.
+apply :: (Ref -> a -> b) -> a -> Ref -> b
+apply f x r = CEventOracle.apply f x r
+
+--- Wrapper for hnf apply function.
+($!) :: (Ref -> a -> b) -> a -> Ref -> b
+(f $! x) r = (f CEventOracle.$! x) r 
+
+--- Wrapper for nf apply function.
+($!!) :: (Ref -> a -> b) -> a -> Ref -> b
+($!!) f x r = (f CEventOracle.$!! x) r 
+
+--- Wrapper for ghnf apply function.
+($#) :: (Ref -> a -> b) -> a -> Ref -> b
+($#) f x r = (f CEventOracle.$# x) r 
+
+--- Wrapper for gnf apply function.
+($##) :: (Ref -> a -> b) -> a -> Ref -> b
+($##) f x r = (f CEventOracle.$## x) r 
+
+headNormalFormIO :: (Ref -> a -> Ref -> () -> IO b) -> a -> Ref -> Ref -> () -> IO b
+headNormalFormIO f x r = error "headNormalFormIO"
+
+prim_unsafePerformIO :: (Ref -> () -> IO a) -> Ref -> a
+prim_unsafePerformIO act ref = replace ref (Unsafe.unsafePerformIO (act ref ()))
+
+
+lambda_world :: IO a -> Ref -> () -> IO a
+lambda_world act ref _ = collapse ref act
+
+--- Wrapper for bind in io monad
+(>>=) :: (Ref -> () -> IO a) -> (Ref -> a -> Ref -> () -> IO b) -> Ref -> Ref -> () -> IO b
+(>>=) act cont ref = collapse ref (partFunc (bind act cont))
+
+bind :: (Ref -> () -> IO a) -> (Ref -> a -> Ref -> () -> IO b) -> () -> Ref -> IO b
+bind act cont world ref = 
+  let ref2 = fresh () 
+   in expand ref [ref2] (apply act world ref Prelude.>>= bind2 cont world ref2)
+
+bind2 :: (Ref -> a -> Ref -> () -> IO b) -> () -> Ref -> a -> IO b 
+bind2 cont world ref2 x =
+      let ref3 = fresh () 
+       in expand ref2 [ref3] (apply (apply cont x ref2) world ref3)
+
+-- catchFail is also an external higher order function
+catchFail :: (Ref -> () -> IO a) -> (Ref -> () -> IO a) -> Ref -> Ref -> () -> IO a
+catchFail act1 act2 ref = 
+  collapse ref (partFunc (catch act1 act2))
+
+catch :: (Ref -> () -> IO a) -> (Ref -> () -> IO a) -> () -> Ref -> IO a
+catch act1 act2 world ref = let ref' = fresh () in
+  expand ref [ref'] 
+    (Prelude.catchFail 
+      (apply act1 world ref  Prelude.>>= return . (,) True)
+      (apply act2 world ref' Prelude.>>= return . (,) False) Prelude.>>=
+      \ (b,res) -> safeIOResult (return b) >> return res)
+    
+
+--- Function composition (Prelude version may be transformed)
+compose :: (b -> c) -> (a -> b) -> a -> c
+compose f g x = f (g x)
+
+--- Computes the oracle for a computation. 
+oracle :: (Ref -> a) -> IO ()
+oracle expr = initialize (return . expr)
+
+oracleIO :: (Ref -> Ref -> () -> IO a) -> IO ()
+oracleIO app = initialize (\ mainR -> 
+  let appRef = fresh () 
+   in expand mainR [appRef] (app mainR appRef ()))
+
+
+safeIOResult :: IO a -> IO a
+safeIOResult act = do 
+  Just fn <- getAssoc "extfn"
+  x <- act
+  let sx = show x
+  appendFile fn (show (length sx)++'\n':sx)
+  return x
+
+
+unknown :: Ref -> a
+unknown r = CEventOracle.unknown r
diff --git a/Curry/Module/Oracle.fcy b/Curry/Module/Oracle.fcy
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Oracle.fcy
@@ -0,0 +1,1 @@
+Prog "Oracle" ["CEventOracle","IOExts","Prelude","Unsafe","Meta"] [] [Func ("Oracle","partCons") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","closeRef") [Var 2,Comb FuncCall ("Prelude","apply") [Var 1,Var 3]])),Func ("Oracle","partFunc") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 2])),Func ("Oracle","partCall") 2 Public (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0))) (Rule [1,2] (Comb FuncCall ("CEventOracle","closeRef") [Var 2,Var 1])),Func ("Oracle","apply") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","apply") [Var 1,Var 2,Var 3])),Func ("Oracle","$!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$!") [Var 1,Var 2,Var 3])),Func ("Oracle","$!!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$!!") [Var 1,Var 2,Var 3])),Func ("Oracle","$#") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$#") [Var 1,Var 2,Var 3])),Func ("Oracle","$##") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$##") [Var 1,Var 2,Var 3])),Func ("Oracle","headNormalFormIO") 3 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1])))))) (Rule [1,2,3] (Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'F'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]])),Func ("Oracle","prim_unsafePerformIO") 2 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0))) (Rule [1,2] (Comb FuncCall ("CEventOracle","replace") [Var 2,Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Comb ConsCall ("Prelude","()") []]]])),Func ("Oracle","lambda_world") 3 Private (FuncType (TCons ("Prelude","IO") [TVar 0]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","collapse") [Var 2,Var 1])),Func ("Oracle",">>=") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1])))))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","collapse") [Var 3,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("Oracle","bind") [Var 1,Var 2]]])),Func ("Oracle","bind") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("Prelude","()") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 1]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 4,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Oracle","apply") [Var 1,Var 3,Var 4],Comb (FuncPartCall 1) ("Oracle","bind2") [Var 2,Var 3,Var 5]]]))),Func ("Oracle","bind2") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("Prelude","()") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 3,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("Oracle","apply") [Var 1,Var 4,Var 3],Var 2,Var 5]]))),Func ("Oracle","catchFail") 3 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","collapse") [Var 3,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("Oracle","catch") [Var 1,Var 2]]])),Func ("Oracle","catch") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (TCons ("Prelude","()") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 0]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 4,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Oracle","apply") [Var 1,Var 3,Var 4],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (ConsPartCall 1) ("Prelude","(,)") [Comb ConsCall ("Prelude","True") []]]],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Oracle","apply") [Var 2,Var 3,Var 5],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (ConsPartCall 1) ("Prelude","(,)") [Comb ConsCall ("Prelude","False") []]]]],Comb (FuncPartCall 1) ("Oracle","catch._#lambda2") []]]))),Func ("Oracle","catch._#lambda2") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Bool") [],TVar 162]) (TCons ("Prelude","IO") [TVar 162])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("Prelude","return") [Var 2]],Comb FuncCall ("Prelude","return") [Var 3]])])),Func ("Oracle","compose") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Var 1,Comb FuncCall ("Prelude","apply") [Var 2,Var 3]])),Func ("Oracle","oracle") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("CEventOracle","initialize") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Var 1]])),Func ("Oracle","oracleIO") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("CEventOracle","initialize") [Comb (FuncPartCall 1) ("Oracle","oracleIO._#lambda3") [Var 1]])),Func ("Oracle","oracleIO._#lambda3") 2 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 195])))) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 195]))) (Rule [1,2] (Let [(3,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 2,Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Var 3],Comb ConsCall ("Prelude","()") []]]))),Func ("Oracle","safeIOResult") 1 Private (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TVar 0])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","getAssoc") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb (FuncPartCall 1) ("Oracle","safeIOResult._#lambda4") [Var 1]])),Func ("Oracle","safeIOResult._#lambda4") 2 Private (FuncType (TCons ("Prelude","IO") [TVar 120]) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TVar 120]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Just") [3]) (Comb FuncCall ("Prelude",">>=") [Var 1,Comb (FuncPartCall 1) ("Oracle","safeIOResult._#lambda4._#lambda5") [Var 3]])])),Func ("Oracle","safeIOResult._#lambda4._#lambda5") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 120) (TCons ("Prelude","IO") [TVar 120]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","show") [Var 2])] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","appendFile") [Var 1,Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Comb FuncCall ("Prelude","length") [Var 3]],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Var 3]]],Comb FuncCall ("Prelude","return") [Var 2]]))),Func ("Oracle","unknown") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (Rule [1] (Comb FuncCall ("CEventOracle","unknown") [Var 1]))] [Op ("Oracle","$!") InfixrOp 0,Op ("Oracle","$!!") InfixrOp 0,Op ("Oracle","$#") InfixrOp 0,Op ("Oracle","$##") InfixrOp 0]
diff --git a/Curry/Module/Oracle.fint b/Curry/Module/Oracle.fint
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Oracle.fint
@@ -0,0 +1,1 @@
+Prog "Oracle" ["CEventOracle","IOExts","Prelude","Unsafe","Meta"] [Type ("CEventOracle","Ref") Public [] []] [Func ("CEventOracle","fresh") 1 Public (FuncType (TCons ("Prelude","()") []) (TCons ("CEventOracle","Ref") [])) (Rule [] (Var 0)),Func ("CEventOracle","replace") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("CEventOracle","collapse") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("CEventOracle","closeRef") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("CEventOracle","expand") 3 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TCons ("CEventOracle","Ref") []]) (FuncType (TVar 0) (TVar 0)))) (Rule [] (Var 0)),Func ("Oracle","partCons") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","partFunc") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","partCall") 2 Public (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0))) (Rule [] (Var 0)),Func ("Oracle","apply") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","$!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","$!!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","$#") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","$##") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle",">>=") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1])))))) (Rule [] (Var 0)),Func ("Oracle","compose") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","oracle") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Oracle","oracleIO") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Oracle","unknown") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (Rule [] (Var 0))] [Op ("Oracle","$!") InfixrOp 0,Op ("Oracle","$!!") InfixrOp 0,Op ("Oracle","$#") InfixrOp 0,Op ("Oracle","$##") InfixrOp 0]
diff --git a/Curry/Module/Transform.curry b/Curry/Module/Transform.curry
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Transform.curry
@@ -0,0 +1,293 @@
+--- Program transformation to compute the oracle.
+---
+--- @version July 2007
+--- new: employ make for modulewise transformation
+---
+
+module Transform where
+
+import System (getArgs)
+import Directory 
+import Integer ( maxlist )
+import List 
+import Maybe 
+import Distribution (getStdLibDir)
+import ReadShowTerm
+
+import FlatCurry
+import FlatCurryGoodies
+
+import Wrapper
+import Make
+import AddWorld (addWorld)
+import LiftCases (liftCases)
+
+main :: IO () 
+main = do
+  putStrLn "this is the curry prophecy generator"
+  params <- parseArgs
+  libdir <- getStdLibDir 
+  maybe done mayCreateDirectory (output params)
+  transform libdir (force params) (quiet params) (output params) (modulename params)
+  putStrLn "curry prophecy generator finished"
+
+mayCreateDirectory :: String -> IO ()
+mayCreateDirectory dir = do 
+  ex <- doesDirectoryExist dir
+  unless ex (createDirectory dir)
+
+transform :: String -> Bool -> Bool -> Maybe String -> String -> IO ()
+transform libdir force quiet outdir mod = make quiet mod tester (writeTrans outdir)
+  where
+    tester = if force then (\ fn _ -> readTypes [fn] >>= return . Just)
+                      else myObsolete
+    readTypes fns = do
+      prog <- readFile (head fns)
+      let typeString = dropWhile (/='[') $ dropWhile (/=']') $ dropWhile (/='[') prog
+          types = fst $ head $ readsTerm typeString
+      return $ filter hasHOTypeArg types
+
+    obso = obsolete quiet (\ dir -> addFcy . addOrc dir outdir) [addFcy] readTypes 
+
+    myObsolete path modu = do
+      ob <- obso path modu
+      if isJust ob || isJust outdir || not (isPrefixOf libdir path)
+        then return ob
+        else do
+          unless quiet (putStrLn (modu ++ " is a standard library")) 
+          ts <- readTypes [path++addFcy modu]
+          return (Just ts)
+
+writeTrans :: Maybe String -> String -> [[TypeDecl]] -> Prog -> IO [TypeDecl]
+writeTrans outdir path imps prog = do
+      let fn = addOrc path outdir (progName prog)
+          (trTypes,trProg) = transProg (concat imps) (liftCases False prog)
+          res = show trProg
+      putStrLn ("generating "++fn)
+      writeFile (fn++".fcy")  res
+      writeFile (fn++".fint") res
+      return trTypes
+
+transProg :: [TypeDecl] -> Prog -> ([TypeDecl],Prog)
+transProg impTypes prog
+  = (typesToTransform,
+     updProg newModName 
+            (\imps -> eventMod:oracle:ioexts:progName prog:imps ++ map newModName imps)
+            (map (transType isTrType) . filter (isTrType . typeName))
+            (concatMap (transFunc isTrType isTrCons))
+            (map (updOpName newModNameQ)) prog')
+  where
+    prog' = rnmAllVarsInProg (+1) (addWorld prog) -- relies on vars starting from 1
+    typesToTransform = fst (fixDependence (withHo++impTypes) noHo) 
+    (withHo,noHo)    = partition hasHOTypeArg (progTypes prog)
+
+    fixDependence knowns unknowns = 
+      case partition (dependsOnTypes (map typeName knowns)) unknowns of
+       ([],indeps)   -> (knowns,indeps)
+       (deps,indeps) -> fixDependence (knowns++deps) indeps
+    
+    dependsOnTypes ts = trType (\_ _ _ -> any (any (containsTypes ts) . consArgs))
+                               (\_ _ _ -> containsTypes ts)
+    containsTypes ts = trTypeExpr (\_->False) (\qn args -> or (elem qn ts:args)) (||)
+    
+    isTrType t  = elem t $ map typeName typesToTransform
+    isTrCons c = elem c $ map consName $ concatMap typeConsDecls 
+                        $ filter (not . isTypeSyn) typesToTransform
+
+hasHOTypeArg :: TypeDecl -> Bool
+hasHOTypeArg = trType (\_ _ _ cs -> any isFuncType (concatMap consArgs cs)) 
+                      (\_ _ _ _ -> False)
+
+transType :: (QName -> Bool) -> TypeDecl -> TypeDecl
+transType isTr t 
+  | isTr (typeName t) = updTypeName newModNameQ $
+                        updTypeConsDecls (map (updCons newModNameQ id id 
+                                                       (map (rType isTr)))) t
+  | otherwise = t
+
+when :: (a -> Bool) -> (a -> a) -> a -> a
+when p f x = if p x then f x else x
+
+rType :: (QName -> Bool) -> TypeExpr -> TypeExpr
+rType _ t@(TVar _) = t
+rType isTr (TCons name args) = TCons (when isTr newModNameQ name) (map (rType isTr) args)
+rType isTr (FuncType dom ran) = 
+  FuncType tRef (FuncType (updQNamesInTypeExpr (when isTr newModNameQ) 
+                                               (rType isTr dom)) 
+                          (rType isTr ran))
+
+transFunc :: (QName -> Bool) -> Options -> FuncDecl -> [FuncDecl]
+transFunc isTr opts func@(Func name arity vis t _)
+  | name==("Global","global") || name `elem` implementedInOracle = []
+  | isExternal func && isIO typ
+  = let call | isComplexIO typ = extIO (safeIOResult (extCall arity))
+             | otherwise       = extIO (extCall arity) in
+    [Func newName arity vis (transFuncType (arity-1) isTr t) $
+     Rule (reverse [1 .. arity]) $ collapse ref call]
+  | isExternal func 
+    = [Func newName (arity+1) vis (transFuncType arity isTr t) $
+       Rule (reverse args) $ collapse ref $ extCall (arity+1)]
+  | isGlobal func 
+    = if isValue (head (combArgs (funcBody func)))
+      then [Func newName (arity+1) vis (transFuncType arity isTr t) $
+            Rule (reverse args) $ collapse ref $ extCall (arity+1)]
+      else error (fst name ++ '.':snd name ++
+                  ": cannot treat global states initialized with \
+                  \unevaluated expression\n\
+                  \possible solution: do some inlining and evaluating.")
+  | otherwise
+    = case transExpr opts (funcBody func) nextVar of
+       Right (ns,vs,exp) -> [updFunc newModNameQ       
+                                     (+1)
+                                     id
+                                     (transFuncType arity isTr)
+                                     (updRule (++[1])
+                                              (const ({-if take 6 (snd name) == "_case_"
+                                                      then exp
+                                                      else-} event ns ref vs exp))
+                                              id)
+                                     func]
+       Left err          -> [Func newName (arity+1) vis (transFuncType arity isTr t) $
+			     Rule args $ errorCall $ 
+                                  fst newName ++ '.':snd newName ++':':err]
+ where
+  typ = resultType t
+  funcVars = allVarsInFunc func
+  nextVar = if null funcVars then 2 else maxlist funcVars + 1
+  args = [1..arity+1]
+  newName = newModNameQ name
+
+  isIO x = isTCons x && tConsName x==(prelude,"IO")
+  isComplexIO (TVar _) = False
+  isComplexIO (TCons _ as) = 
+                  as/=[TCons (prelude,"()") []] 
+               && not (elem name specialIOs)
+  isGlobal f = case funcBody f of
+                Comb FuncCall g [_,_] -> g==("Global","global") 
+                _ -> False
+
+  extCall i = Comb FuncCall name (map Var (reverse (tail [1 .. i])))
+  isValue = trExpr (const False) (const True)     (\ x _ xs -> and (isCombTypeConsCall x:xs))
+                   (\ bs x -> and (x:map snd bs)) (\ _ x -> x) (&&) (\_ _ _ -> False) (\_ _ -> False)
+
+transFuncType :: Int -> (QName -> Bool) -> TypeExpr -> TypeExpr
+transFuncType n isTr t@(TVar v) = 
+  if v==(-42) || n/=0 then t else FuncType tRef (rType isTr t)
+transFuncType 0 isTr t@(TCons _ _) = FuncType tRef (rType isTr t)
+transFuncType n isTr t@(FuncType dom ran)
+  | n == 0 = FuncType tRef (rType isTr t)
+  | otherwise = FuncType (rType isTr dom) (transFuncType (n-1) isTr ran)
+
+transExpr :: Options -> Expr -> Int -> Either String ([Int],[Int],Expr)
+transExpr opts exp n = 
+  case trExpr var lit comb leT freE oR casE branch exp opts n [ref] of
+    Right (_,ns,vs,e) -> Right (ns,vs [],e)
+    Left s -> Left s
+
+  
+type Options = QName -> Bool
+type T a = Options
+        -> Int               -- next unused reference
+        -> [Int]             -- references to reuse
+        -> Either 
+           String            -- Error for non-supported constructs
+           (Int              -- next unused reference
+           ,[Int]            -- references to reuse
+           ,[Int]->[Int]     -- references to be introduced
+           ,a)               -- monadic result
+           
+
+ret :: a -> T a
+ret x _ n ns = Right (n,ns,id,x)
+
+(.>>=) :: T a -> (a -> T b) -> T b
+(ta .>>= f) isTr n ns
+  = case ta isTr n ns of
+      Right (m,ms,vs,a) -> case f a isTr m ms of
+                            Right (l,ls,ws,b) -> Right (l,ls,vs . ws,b)
+                            Left s -> Left s
+      Left s -> Left s
+
+sequence :: [T a] -> T [a]
+sequence [] = ret []
+sequence (tx:txs) = tx .>>= \x -> sequence txs .>>= \xs -> ret (x:xs)
+
+nextRef :: T Int
+nextRef _ n [] = Right (n+1,[],(n:),n)
+nextRef _ n (m:ms) = Right (n,ms,id,m)
+
+renameCons :: QName -> T QName
+renameCons n isTr = ret (when isTr newModNameQ n) isTr
+
+var :: Int -> T Expr
+var x = ret (Var x)
+
+lit :: Literal -> T Expr
+lit l = ret (Lit l)
+
+comb :: CombType -> QName -> [T Expr] -> T Expr
+comb ct@ConsCall name targs
+  = sequence targs .>>= \args  ->
+    renameCons name  .>>= \name' ->
+    ret (Comb ct name' args)
+
+comb ct@(ConsPartCall m) name targs
+  = sequence targs .>>= \args ->
+    renameCons name  .>>= \name' ->
+    ret (partCons m (Comb ct name' args))
+
+comb ct@FuncCall name targs
+  = sequence targs .>>= \args ->
+    nextRef .>>= \r ->
+    let args' = args++[Var r] in
+    if name `elem` implementedInOracle
+
+    then ret (inOraclePartCall (snd name) args') 
+    else ret (Comb ct (newModNameQ name) args')
+      
+
+comb (FuncPartCall m) name targs
+  = sequence targs .>>= \args ->
+    ret $ partFunc m $
+    if name `elem` implementedInOracle
+       then inOraclePartCall (snd name) args
+       else pc (newModNameQ name) args
+ where
+  pc = Comb (FuncPartCall (m+1))
+
+leT :: [(Int,T Expr)] -> T Expr -> T Expr
+leT tbs texp
+  = sequence (map snd tbs) .>>= \es ->
+    nextRef .>>= \r isTr n [] -> case texp isTr n [r] of
+      Right (m,ms,fvs,exp) -> let bs = zip (map fst tbs) es
+                         in Right (m,[],id,Let bs (event ms r (fvs []) exp))
+      Left s -> Left s
+
+freE :: [Int] -> T Expr -> T Expr
+freE vs te = sequence (replicate (length vs) freeVar) .>>= \ es ->
+             te .>>= \ e ->
+             ret (Let (zip vs es) e)
+  where
+    freeVar = nextRef .>>= (ret . Wrapper.unknown . Var)
+
+oR :: T Expr -> T Expr -> T Expr
+oR te1 te2 = te1 .>>= \ e1 -> 
+             te2 .>>= \ e2 ->
+             ret (FlatCurry.Or e1 e2)
+
+casE :: CaseType -> T Expr -> [Int -> T BranchExpr] -> T Expr
+casE ct texp tbs
+  = texp .>>= \exp ->
+    nextRef .>>= \cr ->
+    sequence (map ($cr) tbs) .>>= \bs ->
+    ret (Case ct exp bs) 
+
+branch :: Pattern -> T Expr -> Int -> T BranchExpr
+branch pat texp cr isTr n []
+  = case texp isTr n [cr] of
+     Right (m,ms,fvs,exp) -> Right (m,[],id,Branch (updPatCons (when isTr newModNameQ) pat) 
+                                                   (event ms cr (fvs []) exp))
+     Left s -> Left s
+  
+    
+
diff --git a/Curry/Module/Transform.fcy b/Curry/Module/Transform.fcy
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Transform.fcy
@@ -0,0 +1,1 @@
+Prog "Transform" ["AddWorld","Directory","Distribution","FlatCurry","FlatCurryGoodies","Integer","LiftCases","List","Make","Maybe","Prelude","ReadShowTerm","Wrapper","System"] [TypeSyn ("Transform","Options") Public [] (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])),TypeSyn ("Transform","T") Public [0] (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 0]]))))] [Func ("Transform","main") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","()") []]) (Rule [] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Make","parseArgs") [],Comb (FuncPartCall 1) ("Transform","main._#lambda2") []]])),Func ("Transform","main._#lambda2") 1 Private (FuncType (TCons ("Make","Parameter") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Distribution","getStdLibDir") [],Comb (FuncPartCall 1) ("Transform","main._#lambda2._#lambda3") [Var 1]])),Func ("Transform","main._#lambda2._#lambda3") 2 Private (FuncType (TCons ("Make","Parameter") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","maybe") [Comb FuncCall ("Prelude","done") [],Comb (FuncPartCall 1) ("Transform","mayCreateDirectory") [],Comb FuncCall ("Make","output") [Var 1]],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Transform","transform") [Var 2,Comb FuncCall ("Make","force") [Var 1],Comb FuncCall ("Make","quiet") [Var 1],Comb FuncCall ("Make","output") [Var 1],Comb FuncCall ("Make","modulename") [Var 1]],Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])),Func ("Transform","mayCreateDirectory") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Directory","doesDirectoryExist") [Var 1],Comb (FuncPartCall 1) ("Transform","mayCreateDirectory._#lambda4") [Var 1]])),Func ("Transform","mayCreateDirectory._#lambda4") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Make","unless") [Var 2,Comb FuncCall ("Directory","createDirectory") [Var 1]])),Func ("Transform","transform") 5 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [1,2,3,4,5] (Let [(6,Comb (FuncPartCall 2) ("Make","obsolete") [Var 3,Comb (FuncPartCall 1) ("Transform","transform._#lambda7") [Var 4],Comb ConsCall ("Prelude",":") [Comb FuncCall ("Wrapper","addFcy") [],Comb ConsCall ("Prelude","[]") []],Comb (FuncPartCall 1) ("Transform","transform.readTypes.10") []])] (Let [(7,Case  Rigid (Var 2) [Branch (Pattern ("Prelude","True") []) (Comb (FuncPartCall 2) ("Transform","transform._#lambda5") []),Branch (Pattern ("Prelude","False") []) (Comb (FuncPartCall 2) ("Transform","transform.myObsolete.10") [Var 1,Var 6,Var 4,Var 3])])] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Make","make") [],Var 3],Var 5],Var 7],Comb (FuncPartCall 3) ("Transform","writeTrans") [Var 4]])))),Func ("Transform","transform.readTypes.10") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","readFile") [Comb FuncCall ("Prelude","head") [Var 1]],Comb (FuncPartCall 1) ("Transform","transform.readTypes.10._#lambda6") []])),Func ("Transform","transform.readTypes.10._#lambda6") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]])) (Rule [1] (Let [(2,Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","dropWhile") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Lit (Charc  '[')]],Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","dropWhile") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Lit (Charc  ']')]],Comb FuncCall ("Prelude","dropWhile") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","/=") [],Lit (Charc  '[')],Var 1]]])] (Let [(3,Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","fst") [],Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","head") [],Comb FuncCall ("ReadShowTerm","readsTerm") [Var 2]]])] (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Transform","hasHOTypeArg") [],Var 3]])))),Func ("Transform","transform._#lambda7") 2 Private (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))) (Rule [1,2] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("Wrapper","addFcy") [],Comb (FuncPartCall 1) ("Wrapper","addOrc") [Var 2,Var 1]])),Func ("Transform","transform.myObsolete.10") 6 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]]))) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]]))))))) (Rule [1,2,3,4,5,6] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 5],Var 6],Comb (FuncPartCall 1) ("Transform","transform.myObsolete.10._#lambda8") [Var 1,Var 6,Var 3,Var 5,Var 4]])),Func ("Transform","transform.myObsolete.10._#lambda8") 6 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]]))))))) (Rule [1,2,3,4,5,6] (Case  Rigid (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Maybe","isJust") [Var 6],Comb FuncCall ("Prelude","||") [Comb FuncCall ("Maybe","isJust") [Var 3],Comb FuncCall ("Prelude","not") [Comb FuncCall ("List","isPrefixOf") [Var 1,Var 4]]]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","return") [Var 6]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Make","unless") [Var 5,Comb FuncCall ("Prelude","putStrLn") [Comb FuncCall ("Prelude","++") [Var 2,Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Transform","transform.readTypes.10") [Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","++") [Var 4,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","addFcy") [],Var 2]],Comb ConsCall ("Prelude","[]") []]],Comb (FuncPartCall 1) ("Transform","transform.myObsolete.10._#lambda8._#lambda9") []]])])),Func ("Transform","transform.myObsolete.10._#lambda8._#lambda9") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]])) (Rule [1] (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","Just") [Var 1]])),Func ("Transform","transform._#lambda5") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Transform","transform.readTypes.10") [Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (ConsPartCall 1) ("Prelude","Just") []]])),Func ("Transform","writeTrans") 4 Public (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("Wrapper","addOrc") [Var 2,Var 1,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","progName") [],Var 4]])] (Let [(6,Comb FuncCall ("Transform","transProg") [Comb FuncCall ("Prelude","concat") [Var 3],Comb FuncCall ("LiftCases","liftCases") [Comb ConsCall ("Prelude","False") [],Var 4]])] (Let [(7,Comb FuncCall ("Transform","writeTrans._#selFP3#trTypes") [Var 6])] (Let [(8,Comb FuncCall ("Transform","writeTrans._#selFP4#trProg") [Var 6])] (Let [(9,Comb FuncCall ("Prelude","show") [Var 8])] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStrLn") [Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]],Var 5]],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","writeFile") [Comb FuncCall ("Prelude","++") [Var 5,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","[]") []]]]]],Var 9],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","writeFile") [Comb FuncCall ("Prelude","++") [Var 5,Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]]],Var 9],Comb FuncCall ("Prelude","return") [Var 7]]]]))))))),Func ("Transform","writeTrans._#selFP3#trTypes") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []],TCons ("FlatCurry","Prog") []]) (TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Transform","writeTrans._#selFP4#trProg") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []],TCons ("FlatCurry","Prog") []]) (TCons ("FlatCurry","Prog") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Transform","transProg") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []],TCons ("FlatCurry","Prog") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","rnmAllVarsInProg") [],Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","+") [],Lit (Intc  1)]],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("AddWorld","addWorld") [],Var 2]])] (Let [(4,Comb FuncCall ("List","partition") [Comb FuncCall ("Transform","hasHOTypeArg") [],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","progTypes") [],Var 2]])] (Let [(5,Comb FuncCall ("Transform","transProg._#selFP6#withHo") [Var 4])] (Let [(6,Comb FuncCall ("Transform","transProg._#selFP7#noHo") [Var 4])] (Let [(7,Comb FuncCall ("Prelude","fst") [Comb FuncCall ("Transform","transProg.fixDependence.33") [Comb FuncCall ("Prelude","++") [Var 5,Var 1],Var 6]])] (Comb ConsCall ("Prelude","(,)") [Var 7,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","updProg") [Comb (FuncPartCall 1) ("Wrapper","newModName") [],Comb (FuncPartCall 1) ("Transform","transProg._#lambda15") [Var 2],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("Transform","transType") [Comb (FuncPartCall 1) ("Transform","transProg.isTrType.33") [Var 7]]],Comb (FuncPartCall 1) ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Transform","transProg.isTrType.33") [Var 7],Comb FuncCall ("FlatCurryGoodies","typeName") []]]],Comb FuncCall ("Prelude","concatMap") [Comb (FuncPartCall 1) ("Transform","transFunc") [Comb (FuncPartCall 1) ("Transform","transProg.isTrType.33") [Var 7],Comb (FuncPartCall 1) ("Transform","transProg.isTrCons.33") [Var 7]]],Comb (FuncPartCall 1) ("Prelude","map") [Comb FuncCall ("FlatCurryGoodies","updOpName") [Comb (FuncPartCall 1) ("Wrapper","newModNameQ") []]]],Var 3]]))))))),Func ("Transform","transProg._#selFP6#withHo") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []],TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]) (TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Transform","transProg._#selFP7#noHo") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []],TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]) (TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Transform","transProg.containsTypes.33") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("Prelude","Bool") []))) (Rule [1] (Comb (FuncPartCall 1) ("FlatCurryGoodies","trTypeExpr") [Comb (FuncPartCall 1) ("Transform","transProg.containsTypes.33._#lambda13") [],Comb (FuncPartCall 2) ("Transform","transProg.containsTypes.33._#lambda14") [Var 1],Comb (FuncPartCall 2) ("Prelude","||") []])),Func ("Transform","transProg.containsTypes.33._#lambda13") 1 Private (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb ConsCall ("Prelude","False") [])),Func ("Transform","transProg.containsTypes.33._#lambda14") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []]) (TCons ("Prelude","Bool") [])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","or") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 2],Var 1],Var 3]])),Func ("Transform","transProg.dependsOnTypes.33") 1 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (FuncType (TCons ("FlatCurry","TypeDecl") []) (TCons ("Prelude","Bool") []))) (Rule [1] (Comb (FuncPartCall 1) ("FlatCurryGoodies","trType") [Comb (FuncPartCall 3) ("Transform","transProg.dependsOnTypes.33._#lambda11") [Var 1],Comb (FuncPartCall 3) ("Transform","transProg.dependsOnTypes.33._#lambda12") [Var 1]])),Func ("Transform","transProg.dependsOnTypes.33._#lambda11") 4 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("FlatCurry","Visibility") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","ConsDecl") []]) (TCons ("Prelude","Bool") [])))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude","any") [Comb FuncCall ("Prelude",".") [Comb FuncCall ("Prelude","any") [Comb FuncCall ("Transform","transProg.containsTypes.33") [Var 1]],Comb FuncCall ("FlatCurryGoodies","consArgs") []]])),Func ("Transform","transProg.dependsOnTypes.33._#lambda12") 4 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("FlatCurry","Visibility") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("Prelude","Bool") [])))))) (Rule [1,2,3,4] (Comb FuncCall ("Transform","transProg.containsTypes.33") [Var 1])),Func ("Transform","transProg.fixDependence.33") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []],TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("List","partition") [Comb FuncCall ("Transform","transProg.dependsOnTypes.33") [Comb FuncCall ("Prelude","map") [Comb FuncCall ("FlatCurryGoodies","typeName") [],Var 1]],Var 2]) [Branch (Pattern ("Prelude","(,)") [3,4]) (Case  Rigid (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","(,)") [Var 1,Var 4]),Branch (Pattern ("Prelude",":") [5,6]) (Comb FuncCall ("Transform","transProg.fixDependence.33") [Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Var 5,Var 6]],Var 4])])])),Func ("Transform","transProg.isTrType.33") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude","elem") [Var 2],Comb FuncCall ("Prelude","map") [Comb FuncCall ("FlatCurryGoodies","typeName") [],Var 1]])),Func ("Transform","transProg.isTrCons.33") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude","elem") [Var 2],Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","map") [Comb FuncCall ("FlatCurryGoodies","consName") []],Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude","concatMap") [Comb FuncCall ("FlatCurryGoodies","typeConsDecls") []],Comb FuncCall ("Prelude","filter") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","not") [],Comb FuncCall ("FlatCurryGoodies","isTypeSyn") []],Var 1]]]])),Func ("Transform","transProg._#lambda15") 2 Private (FuncType (TCons ("FlatCurry","Prog") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]))) (Rule [1,2] (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Wrapper","eventMod") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("Wrapper","oracle") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("Wrapper","ioexts") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","progName") [],Var 1],Comb FuncCall ("Prelude","++") [Var 2,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Wrapper","newModName") [],Var 2]]]]]])),Func ("Transform","hasHOTypeArg") 0 Public (FuncType (TCons ("FlatCurry","TypeDecl") []) (TCons ("Prelude","Bool") [])) (Rule [] (Comb (FuncPartCall 1) ("FlatCurryGoodies","trType") [Comb (FuncPartCall 4) ("Transform","hasHOTypeArg._#lambda16") [],Comb (FuncPartCall 4) ("Transform","hasHOTypeArg._#lambda17") []])),Func ("Transform","hasHOTypeArg._#lambda16") 4 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("FlatCurry","Visibility") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","ConsDecl") []]) (TCons ("Prelude","Bool") []))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","any") [Comb FuncCall ("FlatCurryGoodies","isFuncType") []],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","concatMap") [Comb FuncCall ("FlatCurryGoodies","consArgs") []],Var 4]])),Func ("Transform","hasHOTypeArg._#lambda17") 4 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("FlatCurry","Visibility") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("Prelude","Bool") []))))) (Rule [1,2,3,4] (Comb ConsCall ("Prelude","False") [])),Func ("Transform","transType") 2 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("FlatCurry","TypeDecl") []) (TCons ("FlatCurry","TypeDecl") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","apply") [Var 1,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","typeName") [],Var 2]]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","$") [Comb FuncCall ("FlatCurryGoodies","updTypeName") [Comb (FuncPartCall 1) ("Wrapper","newModNameQ") []],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","updTypeConsDecls") [Comb (FuncPartCall 1) ("Prelude","map") [Comb FuncCall ("FlatCurryGoodies","updCons") [Comb (FuncPartCall 1) ("Wrapper","newModNameQ") [],Comb (FuncPartCall 1) ("Prelude","id") [],Comb (FuncPartCall 1) ("Prelude","id") [],Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("Transform","rType") [Var 1]]]]],Var 2]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])),Func ("Transform","when") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("Prelude","apply") [Var 1,Var 3]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","apply") [Var 2,Var 3]),Branch (Pattern ("Prelude","False") []) (Var 3)])),Func ("Transform","rType") 2 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("FlatCurry","TypeExpr") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("FlatCurry","TVar") [3]) (Var 2),Branch (Pattern ("FlatCurry","TCons") [4,5]) (Comb ConsCall ("FlatCurry","TCons") [Comb FuncCall ("Transform","when") [Var 1,Comb (FuncPartCall 1) ("Wrapper","newModNameQ") [],Var 4],Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Transform","rType") [Var 1],Var 5]]),Branch (Pattern ("FlatCurry","FuncType") [6,7]) (Comb ConsCall ("FlatCurry","FuncType") [Comb FuncCall ("Wrapper","tRef") [],Comb ConsCall ("FlatCurry","FuncType") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","updQNamesInTypeExpr") [Comb (FuncPartCall 1) ("Transform","when") [Var 1,Comb (FuncPartCall 1) ("Wrapper","newModNameQ") []]],Comb FuncCall ("Transform","rType") [Var 1,Var 6]],Comb FuncCall ("Transform","rType") [Var 1,Var 7]]])])),Func ("Transform","transFunc") 3 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("FlatCurry","FuncDecl") []) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("FlatCurry","Func") [4,5,6,7,8]) (Let [(9,Comb FuncCall ("FlatCurryGoodies","resultType") [Var 7])] (Let [(10,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","allVarsInFunc") [],Var 3])] (Let [(11,Case  Rigid (Comb FuncCall ("Prelude","null") [Var 10]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  2)),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","+") [Comb FuncCall ("Integer","maxlist") [Var 10],Lit (Intc  1)])])] (Let [(12,Comb FuncCall ("Prelude","enumFromTo") [Lit (Intc  1),Comb FuncCall ("Prelude","+") [Var 5,Lit (Intc  1)]])] (Let [(13,Comb FuncCall ("Wrapper","newModNameQ") [Var 4])] (Let [(14,Comb (FuncPartCall 1) ("FlatCurryGoodies","trExpr") [Comb (FuncPartCall 1) ("Prelude","const") [Comb ConsCall ("Prelude","False") []],Comb (FuncPartCall 1) ("Prelude","const") [Comb ConsCall ("Prelude","True") []],Comb (FuncPartCall 3) ("Transform","transFunc._#lambda19") [],Comb (FuncPartCall 2) ("Transform","transFunc._#lambda20") [],Comb (FuncPartCall 2) ("Transform","transFunc._#lambda21") [],Comb (FuncPartCall 2) ("Prelude","&&") [],Comb (FuncPartCall 3) ("Transform","transFunc._#lambda22") [],Comb (FuncPartCall 2) ("Transform","transFunc._#lambda23") []])] (Case  Rigid (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","==") [Var 4,Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Lit (Charc  'G'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude","[]") []]]]]]]]],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 4],Comb FuncCall ("Wrapper","implementedInOracle") []]]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","isExternal") [],Var 3],Comb FuncCall ("Transform","transFunc.isIO.89") [Var 9]]) [Branch (Pattern ("Prelude","True") []) (Let [(15,Case  Rigid (Comb FuncCall ("Transform","transFunc.isComplexIO.89") [Var 4,Var 9]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Wrapper","extIO") [Comb FuncCall ("Wrapper","safeIOResult") [Comb FuncCall ("Transform","transFunc.extCall.89") [Var 4,Var 5]]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Wrapper","extIO") [Comb FuncCall ("Transform","transFunc.extCall.89") [Var 4,Var 5]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])] (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","$") [Comb (ConsPartCall 1) ("FlatCurry","Func") [Var 13,Var 5,Var 6,Comb FuncCall ("Transform","transFuncType") [Comb FuncCall ("Prelude","-") [Var 5,Lit (Intc  1)],Var 1,Var 7]],Comb FuncCall ("Prelude","$") [Comb (ConsPartCall 1) ("FlatCurry","Rule") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Comb FuncCall ("Prelude","enumFromTo") [Lit (Intc  1),Var 5]]],Comb FuncCall ("Wrapper","collapse") [Comb FuncCall ("Wrapper","ref") [],Var 15]]],Comb ConsCall ("Prelude","[]") []])),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","isExternal") [],Var 3]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","$") [Comb (ConsPartCall 1) ("FlatCurry","Func") [Var 13,Comb FuncCall ("Prelude","+") [Var 5,Lit (Intc  1)],Var 6,Comb FuncCall ("Transform","transFuncType") [Var 5,Var 1,Var 7]],Comb FuncCall ("Prelude","$") [Comb (ConsPartCall 1) ("FlatCurry","Rule") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 12]],Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Wrapper","collapse") [Comb FuncCall ("Wrapper","ref") []],Comb FuncCall ("Transform","transFunc.extCall.89") [Var 4,Comb FuncCall ("Prelude","+") [Var 5,Lit (Intc  1)]]]]],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Transform","transFunc.isGlobal.89") [Var 3]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Var 14,Comb FuncCall ("Prelude","head") [Comb FuncCall ("FlatCurryGoodies","combArgs") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","funcBody") [],Var 3]]]]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","$") [Comb (ConsPartCall 1) ("FlatCurry","Func") [Var 13,Comb FuncCall ("Prelude","+") [Var 5,Lit (Intc  1)],Var 6,Comb FuncCall ("Transform","transFuncType") [Var 5,Var 1,Var 7]],Comb FuncCall ("Prelude","$") [Comb (ConsPartCall 1) ("FlatCurry","Rule") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Var 12]],Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Wrapper","collapse") [Comb FuncCall ("Wrapper","ref") []],Comb FuncCall ("Transform","transFunc.extCall.89") [Var 4,Comb FuncCall ("Prelude","+") [Var 5,Lit (Intc  1)]]]]],Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","error") [Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","fst") [Var 4],Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","snd") [Var 4],Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'z'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Comb FuncCall ("Transform","transExpr") [Var 2,Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","funcBody") [],Var 3],Var 11]) [Branch (Pattern ("Prelude","Right") [16]) (Case  Rigid (Var 16) [Branch (Pattern ("Prelude","(,,)") [17,18,19]) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","updFunc") [Comb (FuncPartCall 1) ("Wrapper","newModNameQ") [],Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","+") [],Lit (Intc  1)],Comb (FuncPartCall 1) ("Prelude","id") [],Comb (FuncPartCall 1) ("Transform","transFuncType") [Var 5,Var 1],Comb FuncCall ("FlatCurryGoodies","updRule") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","++") [],Comb ConsCall ("Prelude",":") [Lit (Intc  1),Comb ConsCall ("Prelude","[]") []]],Comb (FuncPartCall 1) ("Prelude","const") [Comb FuncCall ("Wrapper","event") [Var 17,Comb FuncCall ("Wrapper","ref") [],Var 18,Var 19]],Comb (FuncPartCall 1) ("Prelude","id") []]],Var 3],Comb ConsCall ("Prelude","[]") []])]),Branch (Pattern ("Prelude","Left") [20]) (Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","$") [Comb (ConsPartCall 1) ("FlatCurry","Func") [Var 13,Comb FuncCall ("Prelude","+") [Var 5,Lit (Intc  1)],Var 6,Comb FuncCall ("Transform","transFuncType") [Var 5,Var 1,Var 7]],Comb FuncCall ("Prelude","$") [Comb (ConsPartCall 1) ("FlatCurry","Rule") [Var 12],Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Wrapper","errorCall") [],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","fst") [Var 13],Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","snd") [Var 13],Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Var 20]]]]]]],Comb ConsCall ("Prelude","[]") []])]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])])])))))))])),Func ("Transform","transFunc.isIO.89") 1 Private (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","isTCons") [],Var 1],Comb FuncCall ("Prelude","==") [Comb FuncCall ("FlatCurryGoodies","tConsName") [Var 1],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude","[]") []]]]]])),Func ("Transform","transFunc.isComplexIO.89") 2 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("FlatCurry","TVar") [3]) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("FlatCurry","TCons") [4,5]) (Comb FuncCall ("Prelude","&&") [Comb FuncCall ("Prelude","/=") [Var 5,Comb ConsCall ("Prelude",":") [Comb ConsCall ("FlatCurry","TCons") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  '('),Comb ConsCall ("Prelude",":") [Lit (Charc  ')'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude","[]") []],Comb ConsCall ("Prelude","[]") []]],Comb FuncCall ("Prelude","not") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 1],Comb FuncCall ("Wrapper","specialIOs") []]]])])),Func ("Transform","transFunc.isGlobal.89") 1 Private (FuncType (TCons ("FlatCurry","FuncDecl") []) (TCons ("Prelude","Bool") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","funcBody") [],Var 1]) [Branch (Pattern ("FlatCurry","Comb") [2,3,4]) (Case  Rigid (Var 2) [Branch (Pattern ("FlatCurry","FuncCall") []) (Case  Rigid (Var 4) [Branch (Pattern ("Prelude",":") [5,6]) (Case  Rigid (Var 6) [Branch (Pattern ("Prelude",":") [7,8]) (Case  Rigid (Var 8) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","==") [Var 3,Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Lit (Charc  'G'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude","[]") []]]]]]]]]),Branch (Pattern ("Prelude",":") [9,10]) (Comb ConsCall ("Prelude","False") [])]),Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","False") [])]),Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","False") [])]),Branch (Pattern ("FlatCurry","ConsCall") []) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("FlatCurry","FuncPartCall") [11]) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("FlatCurry","ConsPartCall") [12]) (Comb ConsCall ("Prelude","False") [])]),Branch (Pattern ("FlatCurry","Var") [13]) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("FlatCurry","Lit") [14]) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("FlatCurry","Let") [15,16]) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("FlatCurry","Free") [17,18]) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("FlatCurry","Or") [19,20]) (Comb ConsCall ("Prelude","False") []),Branch (Pattern ("FlatCurry","Case") [21,22,23]) (Comb ConsCall ("Prelude","False") [])])),Func ("Transform","transFunc.extCall.89") 2 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Int") []) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Comb ConsCall ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","FuncCall") [],Var 1,Comb FuncCall ("Prelude","map") [Comb (ConsPartCall 1) ("FlatCurry","Var") [],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Comb FuncCall ("Prelude","tail") [Comb FuncCall ("Prelude","enumFromTo") [Lit (Intc  1),Var 2]]]]])),Func ("Transform","transFunc._#lambda19") 3 Private (FuncType (TCons ("FlatCurry","CombType") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []]) (TCons ("Prelude","Bool") [])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","and") [],Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","isCombTypeConsCall") [],Var 1],Var 3]])),Func ("Transform","transFunc._#lambda20") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("Prelude","Bool") []]]) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","and") [],Comb ConsCall ("Prelude",":") [Var 2,Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","snd") [],Var 1]]])),Func ("Transform","transFunc._#lambda21") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Var 2)),Func ("Transform","transFunc._#lambda22") 3 Private (FuncType (TCons ("FlatCurry","CaseType") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Bool") []]) (TCons ("Prelude","Bool") [])))) (Rule [1,2,3] (Comb ConsCall ("Prelude","False") [])),Func ("Transform","transFunc._#lambda23") 2 Private (FuncType (TCons ("FlatCurry","Pattern") []) (FuncType (TCons ("Prelude","Bool") []) (TCons ("Prelude","Bool") []))) (Rule [1,2] (Comb ConsCall ("Prelude","False") [])),Func ("Transform","transFuncType") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("FlatCurry","TypeExpr") [])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("FlatCurry","TVar") [4]) (Case  Rigid (Comb FuncCall ("Prelude","||") [Comb FuncCall ("Prelude","==") [Var 4,Comb FuncCall ("Prelude","negate") [Lit (Intc  42)]],Comb FuncCall ("Prelude","/=") [Var 1,Lit (Intc  0)]]) [Branch (Pattern ("Prelude","True") []) (Var 3),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("FlatCurry","FuncType") [Comb FuncCall ("Wrapper","tRef") [],Comb FuncCall ("Transform","rType") [Var 2,Var 3]])]),Branch (Pattern ("FlatCurry","TCons") [5,6]) (Case  Flex (Var 1) [Branch (LPattern (Intc  0)) (Comb ConsCall ("FlatCurry","FuncType") [Comb FuncCall ("Wrapper","tRef") [],Comb FuncCall ("Transform","rType") [Var 2,Var 3]])]),Branch (Pattern ("FlatCurry","FuncType") [7,8]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FlatCurry","FuncType") [Comb FuncCall ("Wrapper","tRef") [],Comb FuncCall ("Transform","rType") [Var 2,Var 3]]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FlatCurry","FuncType") [Comb FuncCall ("Transform","rType") [Var 2,Var 7],Comb FuncCall ("Transform","transFuncType") [Comb FuncCall ("Prelude","-") [Var 1,Lit (Intc  1)],Var 2,Var 8]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])])),Func ("Transform","transExpr") 3 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],TCons ("FlatCurry","Expr") []]])))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","trExpr") [Comb (FuncPartCall 1) ("Transform","var") [],Comb (FuncPartCall 1) ("Transform","lit") [],Comb (FuncPartCall 3) ("Transform","comb") [],Comb (FuncPartCall 2) ("Transform","leT") [],Comb (FuncPartCall 2) ("Transform","freE") [],Comb (FuncPartCall 2) ("Transform","oR") [],Comb (FuncPartCall 3) ("Transform","casE") [],Comb (FuncPartCall 6) ("Transform","branch") [],Var 2],Var 1],Var 3],Comb ConsCall ("Prelude",":") [Comb FuncCall ("Wrapper","ref") [],Comb ConsCall ("Prelude","[]") []]]) [Branch (Pattern ("Prelude","Right") [4]) (Case  Rigid (Var 4) [Branch (Pattern ("Prelude","(,,,)") [5,6,7,8]) (Comb ConsCall ("Prelude","Right") [Comb ConsCall ("Prelude","(,,)") [Var 6,Comb FuncCall ("Prelude","apply") [Var 7,Comb ConsCall ("Prelude","[]") []],Var 8]])]),Branch (Pattern ("Prelude","Left") [9]) (Comb ConsCall ("Prelude","Left") [Var 9])])),Func ("Transform","ret") 4 Public (FuncType (TVar 0) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 0]]))))) (Rule [1,2,3,4] (Comb ConsCall ("Prelude","Right") [Comb ConsCall ("Prelude","(,,,)") [Var 3,Var 4,Comb (FuncPartCall 1) ("Prelude","id") [],Var 1]])),Func ("Transform",".>>=") 5 Public (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 0]])))) (FuncType (FuncType (TVar 0) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 1]]))))) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 1]])))))) (Rule [1,2,3,4,5] (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 4],Var 5]) [Branch (Pattern ("Prelude","Right") [6]) (Case  Rigid (Var 6) [Branch (Pattern ("Prelude","(,,,)") [7,8,9,10]) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 10],Var 3],Var 7],Var 8]) [Branch (Pattern ("Prelude","Right") [11]) (Case  Rigid (Var 11) [Branch (Pattern ("Prelude","(,,,)") [12,13,14,15]) (Comb ConsCall ("Prelude","Right") [Comb ConsCall ("Prelude","(,,,)") [Var 12,Var 13,Comb FuncCall ("Prelude",".") [Var 9,Var 14],Var 15]])]),Branch (Pattern ("Prelude","Left") [16]) (Comb ConsCall ("Prelude","Left") [Var 16])])]),Branch (Pattern ("Prelude","Left") [17]) (Comb ConsCall ("Prelude","Left") [Var 17])])),Func ("Transform","sequence") 1 Public (FuncType (TCons ("Prelude","[]") [FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 0]])))]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("Prelude","[]") [TVar 0]]]))))) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb (FuncPartCall 3) ("Transform","ret") [Comb ConsCall ("Prelude","[]") []]),Branch (Pattern ("Prelude",":") [2,3]) (Comb (FuncPartCall 3) ("Transform",".>>=") [Var 2,Comb (FuncPartCall 1) ("Transform","sequence._#lambda28") [Var 3]])])),Func ("Transform","sequence._#lambda28") 2 Private (FuncType (TCons ("Prelude","[]") [FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 149]])))]) (FuncType (TVar 149) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("Prelude","[]") [TVar 149]]])))))) (Rule [1,2] (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb FuncCall ("Transform","sequence") [Var 1],Comb (FuncPartCall 1) ("Transform","sequence._#lambda28._#lambda29") [Var 2]])),Func ("Transform","sequence._#lambda28._#lambda29") 2 Private (FuncType (TVar 149) (FuncType (TCons ("Prelude","[]") [TVar 149]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("Prelude","[]") [TVar 149]]])))))) (Rule [1,2] (Comb (FuncPartCall 3) ("Transform","ret") [Comb ConsCall ("Prelude",":") [Var 1,Var 2]])),Func ("Transform","nextRef") 3 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("Prelude","Int") []]])))) (Rule [1,2,3] (Case  Flex (Var 3) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","Right") [Comb ConsCall ("Prelude","(,,,)") [Comb FuncCall ("Prelude","+") [Var 2,Lit (Intc  1)],Comb ConsCall ("Prelude","[]") [],Comb (ConsPartCall 1) ("Prelude",":") [Var 2],Var 2]]),Branch (Pattern ("Prelude",":") [4,5]) (Comb ConsCall ("Prelude","Right") [Comb ConsCall ("Prelude","(,,,)") [Var 2,Var 5,Comb (FuncPartCall 1) ("Prelude","id") [],Var 4]])])),Func ("Transform","renameCons") 2 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]]))))) (Rule [1,2] (Comb (FuncPartCall 2) ("Transform","ret") [Comb FuncCall ("Transform","when") [Var 2,Comb (FuncPartCall 1) ("Wrapper","newModNameQ") [],Var 1],Var 2])),Func ("Transform","var") 1 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))) (Rule [1] (Comb (FuncPartCall 3) ("Transform","ret") [Comb ConsCall ("FlatCurry","Var") [Var 1]])),Func ("Transform","lit") 1 Public (FuncType (TCons ("FlatCurry","Literal") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))) (Rule [1] (Comb (FuncPartCall 3) ("Transform","ret") [Comb ConsCall ("FlatCurry","Lit") [Var 1]])),Func ("Transform","comb") 3 Public (FuncType (TCons ("FlatCurry","CombType") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [1,2,3] (Case  Flex (Var 1) [Branch (Pattern ("FlatCurry","ConsCall") []) (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb FuncCall ("Transform","sequence") [Var 3],Comb (FuncPartCall 1) ("Transform","comb._#lambda30") [Var 1,Var 2]]),Branch (Pattern ("FlatCurry","ConsPartCall") [4]) (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb FuncCall ("Transform","sequence") [Var 3],Comb (FuncPartCall 1) ("Transform","comb._#lambda32") [Var 1,Var 4,Var 2]]),Branch (Pattern ("FlatCurry","FuncCall") []) (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb FuncCall ("Transform","sequence") [Var 3],Comb (FuncPartCall 1) ("Transform","comb._#lambda34") [Var 1,Var 2]]),Branch (Pattern ("FlatCurry","FuncPartCall") [5]) (Let [(6,Comb (ConsPartCall 2) ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","FuncPartCall") [Comb FuncCall ("Prelude","+") [Var 5,Lit (Intc  1)]]])] (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb FuncCall ("Transform","sequence") [Var 3],Comb (FuncPartCall 1) ("Transform","comb._#lambda36") [Var 5,Var 2,Var 6]]))])),Func ("Transform","comb._#lambda30") 3 Private (FuncType (TCons ("FlatCurry","CombType") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [1,2,3] (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb (FuncPartCall 1) ("Transform","renameCons") [Var 2],Comb (FuncPartCall 1) ("Transform","comb._#lambda30._#lambda31") [Var 3,Var 1]])),Func ("Transform","comb._#lambda30._#lambda31") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (FuncType (TCons ("FlatCurry","CombType") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [1,2,3] (Comb (FuncPartCall 3) ("Transform","ret") [Comb ConsCall ("FlatCurry","Comb") [Var 2,Var 3,Var 1]])),Func ("Transform","comb._#lambda32") 4 Private (FuncType (TCons ("FlatCurry","CombType") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))))) (Rule [1,2,3,4] (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb (FuncPartCall 1) ("Transform","renameCons") [Var 3],Comb (FuncPartCall 1) ("Transform","comb._#lambda32._#lambda33") [Var 4,Var 1,Var 2]])),Func ("Transform","comb._#lambda32._#lambda33") 4 Private (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (FuncType (TCons ("FlatCurry","CombType") []) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))))) (Rule [1,2,3,4] (Comb (FuncPartCall 3) ("Transform","ret") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","partCons") [],Var 3],Comb ConsCall ("FlatCurry","Comb") [Var 2,Var 4,Var 1]]])),Func ("Transform","comb._#lambda34") 3 Private (FuncType (TCons ("FlatCurry","CombType") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [1,2,3] (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb (FuncPartCall 3) ("Transform","nextRef") [],Comb (FuncPartCall 1) ("Transform","comb._#lambda34._#lambda35") [Var 3,Var 1,Var 2]])),Func ("Transform","comb._#lambda34._#lambda35") 4 Private (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (FuncType (TCons ("FlatCurry","CombType") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Comb ConsCall ("FlatCurry","Var") [Var 4],Comb ConsCall ("Prelude","[]") []]])] (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 3],Comb FuncCall ("Wrapper","implementedInOracle") []]) [Branch (Pattern ("Prelude","True") []) (Comb (FuncPartCall 3) ("Transform","ret") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","inOraclePartCall") [Comb FuncCall ("Prelude","snd") [Var 3]],Var 5]]),Branch (Pattern ("Prelude","False") []) (Comb (FuncPartCall 3) ("Transform","ret") [Comb ConsCall ("FlatCurry","Comb") [Var 2,Comb FuncCall ("Wrapper","newModNameQ") [Var 3],Var 5]])]))),Func ("Transform","comb._#lambda36") 4 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") []))) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 4) ("Transform","ret") [],Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","partFunc") [],Var 1],Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","elem") [Var 2],Comb FuncCall ("Wrapper","implementedInOracle") []]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","inOraclePartCall") [Comb FuncCall ("Prelude","snd") [Var 2]],Var 4]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 3,Comb FuncCall ("Wrapper","newModNameQ") [Var 2]],Var 4])]]])),Func ("Transform","leT") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))]]) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))) (Rule [1,2] (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb FuncCall ("Transform","sequence") [Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","snd") [],Var 1]],Comb (FuncPartCall 1) ("Transform","leT._#lambda37") [Var 1,Var 2]])),Func ("Transform","leT._#lambda37") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))]]) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [1,2,3] (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb (FuncPartCall 3) ("Transform","nextRef") [],Comb (FuncPartCall 4) ("Transform","leT._#lambda37._#lambda38") [Var 3,Var 1,Var 2]])),Func ("Transform","leT._#lambda37._#lambda38") 7 Private (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))]]) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TVar 150]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TVar 151],FuncType (TVar 152) (TVar 152),TCons ("FlatCurry","Expr") []]])))))))) (Rule [1,2,3,4,5,6,7] (Case  Flex (Var 7) [Branch (Pattern ("Prelude","[]") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 3,Var 5],Var 6],Comb ConsCall ("Prelude",":") [Var 4,Comb ConsCall ("Prelude","[]") []]]) [Branch (Pattern ("Prelude","Right") [8]) (Case  Rigid (Var 8) [Branch (Pattern ("Prelude","(,,,)") [9,10,11,12]) (Let [(13,Comb FuncCall ("Prelude","zip") [Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","fst") [],Var 2],Var 1])] (Comb ConsCall ("Prelude","Right") [Comb ConsCall ("Prelude","(,,,)") [Var 9,Comb ConsCall ("Prelude","[]") [],Comb (FuncPartCall 1) ("Prelude","id") [],Comb ConsCall ("FlatCurry","Let") [Var 13,Comb FuncCall ("Wrapper","event") [Var 10,Var 4,Comb FuncCall ("Prelude","apply") [Var 11,Comb ConsCall ("Prelude","[]") []],Var 12]]]]))]),Branch (Pattern ("Prelude","Left") [14]) (Comb ConsCall ("Prelude","Left") [Var 14])])])),Func ("Transform","freE") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))) (Rule [1,2] (Let [(3,Comb (FuncPartCall 3) ("Transform",".>>=") [Comb (FuncPartCall 3) ("Transform","nextRef") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 4) ("Transform","ret") [],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Wrapper","unknown") [],Comb (ConsPartCall 1) ("FlatCurry","Var") []]]])] (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb FuncCall ("Transform","sequence") [Comb FuncCall ("Prelude","replicate") [Comb FuncCall ("Prelude","length") [Var 1],Var 3]],Comb (FuncPartCall 1) ("Transform","freE._#lambda40") [Var 2,Var 1]]))),Func ("Transform","freE._#lambda40") 3 Private (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [1,2,3] (Comb (FuncPartCall 3) ("Transform",".>>=") [Var 1,Comb (FuncPartCall 1) ("Transform","freE._#lambda40._#lambda41") [Var 3,Var 2]])),Func ("Transform","freE._#lambda40._#lambda41") 3 Private (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [1,2,3] (Comb (FuncPartCall 3) ("Transform","ret") [Comb ConsCall ("FlatCurry","Let") [Comb FuncCall ("Prelude","zip") [Var 2,Var 1],Var 3]])),Func ("Transform","oR") 2 Public (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))) (Rule [1,2] (Comb (FuncPartCall 3) ("Transform",".>>=") [Var 1,Comb (FuncPartCall 1) ("Transform","oR._#lambda42") [Var 2]])),Func ("Transform","oR._#lambda42") 2 Private (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))) (Rule [1,2] (Comb (FuncPartCall 3) ("Transform",".>>=") [Var 1,Comb (FuncPartCall 1) ("Transform","oR._#lambda42._#lambda43") [Var 2]])),Func ("Transform","oR._#lambda42._#lambda43") 2 Private (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))) (Rule [1,2] (Comb (FuncPartCall 3) ("Transform","ret") [Comb ConsCall ("FlatCurry","Or") [Var 1,Var 2]])),Func ("Transform","casE") 3 Public (FuncType (TCons ("FlatCurry","CaseType") []) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (TCons ("Prelude","[]") [FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","BranchExpr") []]]))))]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [1,2,3] (Comb (FuncPartCall 3) ("Transform",".>>=") [Var 2,Comb (FuncPartCall 1) ("Transform","casE._#lambda44") [Var 1,Var 3]])),Func ("Transform","casE._#lambda44") 3 Private (FuncType (TCons ("FlatCurry","CaseType") []) (FuncType (TCons ("Prelude","[]") [FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","BranchExpr") []]]))))]) (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [1,2,3] (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb (FuncPartCall 3) ("Transform","nextRef") [],Comb (FuncPartCall 1) ("Transform","casE._#lambda44._#lambda45") [Var 1,Var 3,Var 2]])),Func ("Transform","casE._#lambda44._#lambda45") 4 Private (FuncType (TCons ("FlatCurry","CaseType") []) (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("Prelude","[]") [FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","BranchExpr") []]]))))]) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))))) (Rule [1,2,3,4] (Comb (FuncPartCall 3) ("Transform",".>>=") [Comb FuncCall ("Transform","sequence") [Comb FuncCall ("Prelude","map") [Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","$") [],Var 4],Var 3]],Comb (FuncPartCall 1) ("Transform","casE._#lambda44._#lambda45._#lambda46") [Var 1,Var 2]])),Func ("Transform","casE._#lambda44._#lambda45._#lambda46") 3 Private (FuncType (TCons ("FlatCurry","CaseType") []) (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","BranchExpr") []]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [1,2,3] (Comb (FuncPartCall 3) ("Transform","ret") [Comb ConsCall ("FlatCurry","Case") [Var 1,Var 2,Var 3]])),Func ("Transform","branch") 6 Public (FuncType (TCons ("FlatCurry","Pattern") []) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","BranchExpr") []]]))))))) (Rule [1,2,3,4,5,6] (Case  Flex (Var 6) [Branch (Pattern ("Prelude","[]") []) (Case  Rigid (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 2,Var 4],Var 5],Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []]]) [Branch (Pattern ("Prelude","Right") [7]) (Case  Rigid (Var 7) [Branch (Pattern ("Prelude","(,,,)") [8,9,10,11]) (Comb ConsCall ("Prelude","Right") [Comb ConsCall ("Prelude","(,,,)") [Var 8,Comb ConsCall ("Prelude","[]") [],Comb (FuncPartCall 1) ("Prelude","id") [],Comb ConsCall ("FlatCurry","Branch") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("FlatCurryGoodies","updPatCons") [Comb (FuncPartCall 1) ("Transform","when") [Var 4,Comb (FuncPartCall 1) ("Wrapper","newModNameQ") []]],Var 1],Comb FuncCall ("Wrapper","event") [Var 9,Var 3,Comb FuncCall ("Prelude","apply") [Var 10,Comb ConsCall ("Prelude","[]") []],Var 11]]]])]),Branch (Pattern ("Prelude","Left") [12]) (Comb ConsCall ("Prelude","Left") [Var 12])])]))] []
diff --git a/Curry/Module/Transform.fint b/Curry/Module/Transform.fint
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Transform.fint
@@ -0,0 +1,1 @@
+Prog "Transform" ["AddWorld","Directory","Distribution","FlatCurry","FlatCurryGoodies","Integer","LiftCases","List","Make","Maybe","Prelude","ReadShowTerm","Wrapper","System"] [TypeSyn ("Transform","Options") Public [] (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])),TypeSyn ("Transform","T") Public [0] (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 0]]))))] [Func ("Transform","main") 0 Public (TCons ("Prelude","IO") [TCons ("Prelude","()") []]) (Rule [] (Var 0)),Func ("Transform","mayCreateDirectory") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Transform","transform") 5 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","Bool") []) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [] (Var 0)),Func ("Transform","writeTrans") 4 Public (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]]))))) (Rule [] (Var 0)),Func ("Transform","transProg") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []]) (FuncType (TCons ("FlatCurry","Prog") []) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","TypeDecl") []],TCons ("FlatCurry","Prog") []]))) (Rule [] (Var 0)),Func ("Transform","hasHOTypeArg") 0 Public (FuncType (TCons ("FlatCurry","TypeDecl") []) (TCons ("Prelude","Bool") [])) (Rule [] (Var 0)),Func ("Transform","transType") 2 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("FlatCurry","TypeDecl") []) (TCons ("FlatCurry","TypeDecl") []))) (Rule [] (Var 0)),Func ("Transform","when") 3 Public (FuncType (FuncType (TVar 0) (TCons ("Prelude","Bool") [])) (FuncType (FuncType (TVar 0) (TVar 0)) (FuncType (TVar 0) (TVar 0)))) (Rule [] (Var 0)),Func ("Transform","rType") 2 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("FlatCurry","TypeExpr") []))) (Rule [] (Var 0)),Func ("Transform","transFunc") 3 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("FlatCurry","FuncDecl") []) (TCons ("Prelude","[]") [TCons ("FlatCurry","FuncDecl") []])))) (Rule [] (Var 0)),Func ("Transform","transFuncType") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("FlatCurry","TypeExpr") [])))) (Rule [] (Var 0)),Func ("Transform","transExpr") 3 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("Prelude","Int") []) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,)") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],TCons ("FlatCurry","Expr") []]])))) (Rule [] (Var 0)),Func ("Transform","ret") 4 Public (FuncType (TVar 0) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 0]]))))) (Rule [] (Var 0)),Func ("Transform",".>>=") 5 Public (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 0]])))) (FuncType (FuncType (TVar 0) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 1]]))))) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 1]])))))) (Rule [] (Var 0)),Func ("Transform","sequence") 1 Public (FuncType (TCons ("Prelude","[]") [FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TVar 0]])))]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("Prelude","[]") [TVar 0]]]))))) (Rule [] (Var 0)),Func ("Transform","nextRef") 3 Public (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("Prelude","Int") []]])))) (Rule [] (Var 0)),Func ("Transform","renameCons") 2 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]]))))) (Rule [] (Var 0)),Func ("Transform","var") 1 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))) (Rule [] (Var 0)),Func ("Transform","lit") 1 Public (FuncType (TCons ("FlatCurry","Literal") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))) (Rule [] (Var 0)),Func ("Transform","comb") 3 Public (FuncType (TCons ("FlatCurry","CombType") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [] (Var 0)),Func ("Transform","leT") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))]]) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))) (Rule [] (Var 0)),Func ("Transform","freE") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))) (Rule [] (Var 0)),Func ("Transform","oR") 2 Public (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))))) (Rule [] (Var 0)),Func ("Transform","casE") 3 Public (FuncType (TCons ("FlatCurry","CaseType") []) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (TCons ("Prelude","[]") [FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","BranchExpr") []]]))))]) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]]))))))) (Rule [] (Var 0)),Func ("Transform","branch") 6 Public (FuncType (TCons ("FlatCurry","Pattern") []) (FuncType (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","Expr") []]])))) (FuncType (TCons ("Prelude","Int") []) (FuncType (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","Bool") [])) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","Either") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","(,,,)") [TCons ("Prelude","Int") [],TCons ("Prelude","[]") [TCons ("Prelude","Int") []],FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]),TCons ("FlatCurry","BranchExpr") []]]))))))) (Rule [] (Var 0))] []
diff --git a/Curry/Module/Wrapper.curry b/Curry/Module/Wrapper.curry
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Wrapper.curry
@@ -0,0 +1,124 @@
+--- Provides wrapper functions for the program transformation.
+---
+--- @version Feb, 2007
+---
+module Wrapper where
+
+import FlatCurry
+import FileGoodies (separatorChar,splitDirectoryBaseName)
+
+prelude = "Prelude"
+eventMod= "CEventOracle"
+oracle  = "Oracle"
+ioexts  = "IOExts"
+
+newModName s = let (d,f) = splitDirectoryBaseName s in
+   (case d of "." -> ""; _ -> d++[separatorChar])++oracle++f
+newModNameQ (m,n) = (newModName m,n)
+
+tRef = TCons (eventMod,"Ref") []
+tR = FuncType tRef
+
+
+lET bs expr = if null bs then expr else Let bs expr
+
+ref :: VarIndex
+ref = 1
+
+flatFunc = Comb FuncCall
+flatCons = Comb ConsCall
+
+func name = flatFunc (eventMod,name) 
+
+list = foldr colon nil
+
+char = Lit . Charc
+
+string = list . map char
+
+nil = flatCons (prelude,"[]") []
+colon x xs = flatCons (prelude,":") [x,xs]
+
+run mod x = func "run" [string mod, x]
+
+event []    r rs x = unfold r rs x
+event (_:_) r _  x = collapse r x
+
+collapse r x = func "collapse" [Var r, x]
+
+closeRef r x = func "closeRef" [Var r, x]
+
+extIO x = listFunc 3 (oracle,"lambda_world") [x]
+
+unfold r rs x
+  = if null rs then replace r x
+     else lET (zip rs (repeat fresh)) (expand r rs x)
+
+replace r x = func "replace" [Var r, x]
+expand r rs x = func "expand" [Var r, list (map Var rs), x]
+
+fresh = func "fresh" [unit]
+unit = Comb ConsCall (prelude,"()") []
+
+apply f x 
+  = case f of
+      Comb (FuncPartCall 1) name args
+        -> Comb FuncCall name (args++[x])
+      Comb (FuncPartCall n) name args
+        -> Comb (FuncPartCall (n-1)) name (args++[x])
+      Comb (ConsPartCall 1) name args
+        -> Comb ConsCall name (args++[x])
+      Comb (ConsPartCall n) name args
+        -> Comb (ConsPartCall (n-1)) name (args++[x])
+      _ -> flatFunc (prelude,"apply") [f,x]
+
+listFunc n name args
+  | missing == 0 = Comb FuncCall name args
+  | otherwise = Comb (FuncPartCall missing) name args
+ where
+  missing = n - length args
+
+
+compose   = listFunc 3 (oracle,"compose")
+unknown e = listFunc 1 (oracle,"unknown") [e]
+
+oracleTry :: QName -> [Expr] -> Expr
+oracleTry name targs = 
+  func "oracleTry" (Comb (FuncPartCall 2) name argsf : argst)
+  where
+    (argsf,argst) = splitAt (length targs - 2) targs
+
+partCons,partFunc :: Int -> Expr -> Expr
+partCons = apply . partial pc
+partFunc = apply . partial pf
+
+pc = listFunc 3 (oracle,"partCons")
+pf = listFunc 3 (oracle,"partFunc")
+partCall = listFunc 2 (oracle,"partCall")
+
+partial :: ([Expr] -> Expr) -> Int -> Expr
+partial part n
+  = foldr1 (\f g -> compose [f,g])
+  . map (\ (k,p) -> dotted (k-1) (p [])) 
+  $ reverse (zip (reverse [1..n]) (part:repeat partCall))
+
+dotted n p
+  | n == 0 = p
+  | otherwise = dotted (n-1) (compose [p])
+
+inOraclePartCall name = listFunc (arityInOracle name) (oracle,name)
+
+errorCall x = Comb FuncCall (prelude,"error") [string x]
+
+safeIOResult act = listFunc 1 (oracle,"safeIOResult") [act]
+
+specialIOs = zip (repeat prelude) ["return","catchFail","getSearchTree"]
+
+implementedInOracle = ("Unsafe","prim_unsafePerformIO") : ("Meta","headNormalFormIO") : 
+  zip (repeat prelude) ["apply","$!","$!!","$#","$##",">>=","catchFail"]
+arityInOracle n = if n=="prim_unsafePerformIO" then 2 else 3
+
+addOrc path outdir s = maybe path id outdir ++ (newModName s)
+addFcy = (++".fcy")
+
+
diff --git a/Curry/Module/Wrapper.fcy b/Curry/Module/Wrapper.fcy
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Wrapper.fcy
@@ -0,0 +1,1 @@
+Prog "Wrapper" ["FileGoodies","FlatCurry","Prelude"] [] [Func ("Wrapper","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 ("Wrapper","eventMod") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Comb ConsCall ("Prelude",":") [Lit (Charc  'C'),Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'v'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]])),Func ("Wrapper","oracle") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]])),Func ("Wrapper","ioexts") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'E'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude","[]") []]]]]]])),Func ("Wrapper","newModName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Let [(2,Comb FuncCall ("FileGoodies","splitDirectoryBaseName") [Var 1])] (Let [(3,Comb FuncCall ("Wrapper","newModName._#selFP3#d") [Var 2])] (Let [(4,Comb FuncCall ("Wrapper","newModName._#selFP4#f") [Var 2])] (Comb FuncCall ("Prelude","++") [Case  Rigid (Var 3) [Branch (Pattern ("Prelude",":") [5,6]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 5,Lit (Charc  '.')]) [Branch (Pattern ("Prelude","True") []) (Case  Rigid (Var 6) [Branch (Pattern ("Prelude","[]") []) (Comb ConsCall ("Prelude","[]") []),Branch (Pattern ("Prelude",":") [7,8]) (Comb FuncCall ("Prelude","++") [Var 3,Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","separatorChar") [],Comb ConsCall ("Prelude","[]") []]])]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","++") [Var 3,Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","separatorChar") [],Comb ConsCall ("Prelude","[]") []]])]),Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude","++") [Var 3,Comb ConsCall ("Prelude",":") [Comb FuncCall ("FileGoodies","separatorChar") [],Comb ConsCall ("Prelude","[]") []]])],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Wrapper","oracle") [],Var 4]]))))),Func ("Wrapper","newModName._#selFP3#d") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Wrapper","newModName._#selFP4#f") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Wrapper","newModNameQ") 1 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","newModName") [Var 2],Var 3])])),Func ("Wrapper","tRef") 0 Public (TCons ("FlatCurry","TypeExpr") []) (Rule [] (Comb ConsCall ("FlatCurry","TCons") [Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","eventMod") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude","[]") []]]]],Comb ConsCall ("Prelude","[]") []])),Func ("Wrapper","tR") 0 Public (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("FlatCurry","TypeExpr") [])) (Rule [] (Comb (ConsPartCall 1) ("FlatCurry","FuncType") [Comb FuncCall ("Wrapper","tRef") []])),Func ("Wrapper","lET") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("FlatCurry","Expr") []]]) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","null") [Var 1]) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("FlatCurry","Let") [Var 1,Var 2])])),Func ("Wrapper","ref") 0 Public (TCons ("Prelude","Int") []) (Rule [] (Lit (Intc  1))),Func ("Wrapper","flatFunc") 0 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") []))) (Rule [] (Comb (ConsPartCall 2) ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","FuncCall") []])),Func ("Wrapper","flatCons") 0 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") []))) (Rule [] (Comb (ConsPartCall 2) ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","ConsCall") []])),Func ("Wrapper","func") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") []))) (Rule [1] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","flatFunc") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","eventMod") [],Var 1]])),Func ("Wrapper","list") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","foldr") [Comb (FuncPartCall 2) ("Wrapper","colon") [],Comb FuncCall ("Wrapper","nil") []])),Func ("Wrapper","char") 0 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("FlatCurry","Expr") [])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (ConsPartCall 1) ("FlatCurry","Lit") [],Comb (ConsPartCall 1) ("FlatCurry","Charc") []])),Func ("Wrapper","string") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Comb FuncCall ("Prelude",".") [Comb FuncCall ("Wrapper","list") [],Comb (FuncPartCall 1) ("Prelude","map") [Comb FuncCall ("Wrapper","char") []]])),Func ("Wrapper","nil") 0 Public (TCons ("FlatCurry","Expr") []) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","flatCons") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  '['),Comb ConsCall ("Prelude",":") [Lit (Charc  ']'),Comb ConsCall ("Prelude","[]") []]]]],Comb ConsCall ("Prelude","[]") []])),Func ("Wrapper","colon") 2 Public (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","flatCons") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]])),Func ("Wrapper","run") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","func") [Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude","[]") []]]]],Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","string") [],Var 1],Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]])),Func ("Wrapper","event") 4 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))))) (Rule [1,2,3,4] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Wrapper","unfold") [Var 2,Var 3,Var 4]),Branch (Pattern ("Prelude",":") [5,6]) (Comb FuncCall ("Wrapper","collapse") [Var 2,Var 4])])),Func ("Wrapper","collapse") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","func") [Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("FlatCurry","Var") [Var 1],Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]])),Func ("Wrapper","closeRef") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","func") [Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("FlatCurry","Var") [Var 1],Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]])),Func ("Wrapper","extIO") 1 Public (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Comb FuncCall ("Wrapper","listFunc") [Lit (Intc  3),Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","oracle") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  '_'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude","[]") []]])),Func ("Wrapper","unfold") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") [])))) (Rule [1,2,3] (Case  Rigid (Comb FuncCall ("Prelude","null") [Var 2]) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Wrapper","replace") [Var 1,Var 3]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Wrapper","lET") [Comb FuncCall ("Prelude","zip") [Var 2,Comb FuncCall ("Prelude","repeat") [Comb FuncCall ("Wrapper","fresh") []]],Comb FuncCall ("Wrapper","expand") [Var 1,Var 2,Var 3]])])),Func ("Wrapper","replace") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","func") [Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("FlatCurry","Var") [Var 1],Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]])),Func ("Wrapper","expand") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") [])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","func") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("FlatCurry","Var") [Var 1],Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","list") [],Comb FuncCall ("Prelude","map") [Comb (ConsPartCall 1) ("FlatCurry","Var") [],Var 2]],Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []]]]])),Func ("Wrapper","fresh") 0 Public (TCons ("FlatCurry","Expr") []) (Rule [] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","func") [Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb ConsCall ("Prelude",":") [Comb FuncCall ("Wrapper","unit") [],Comb ConsCall ("Prelude","[]") []]])),Func ("Wrapper","unit") 0 Public (TCons ("FlatCurry","Expr") []) (Rule [] (Comb ConsCall ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","ConsCall") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  '('),Comb ConsCall ("Prelude",":") [Lit (Charc  ')'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude","[]") []])),Func ("Wrapper","apply") 2 Public (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Case  Rigid (Var 1) [Branch (Pattern ("FlatCurry","Comb") [3,4,5]) (Case  Rigid (Var 3) [Branch (Pattern ("FlatCurry","FuncPartCall") [6]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 6,Lit (Intc  1)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","FuncCall") [],Var 4,Comb FuncCall ("Prelude","++") [Var 5,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","FuncPartCall") [Comb FuncCall ("Prelude","-") [Var 6,Lit (Intc  1)]],Var 4,Comb FuncCall ("Prelude","++") [Var 5,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]])]),Branch (Pattern ("FlatCurry","ConsPartCall") [7]) (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 7,Lit (Intc  1)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","ConsCall") [],Var 4,Comb FuncCall ("Prelude","++") [Var 5,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]]),Branch (Pattern ("Prelude","False") []) (Comb ConsCall ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","ConsPartCall") [Comb FuncCall ("Prelude","-") [Var 7,Lit (Intc  1)]],Var 4,Comb FuncCall ("Prelude","++") [Var 5,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]])]),Branch (Pattern ("FlatCurry","FuncCall") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","flatFunc") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]]),Branch (Pattern ("FlatCurry","ConsCall") []) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","flatFunc") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]])]),Branch (Pattern ("FlatCurry","Var") [8]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","flatFunc") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]]),Branch (Pattern ("FlatCurry","Lit") [9]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","flatFunc") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]]),Branch (Pattern ("FlatCurry","Let") [10,11]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","flatFunc") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]]),Branch (Pattern ("FlatCurry","Free") [12,13]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","flatFunc") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]]),Branch (Pattern ("FlatCurry","Or") [14,15]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","flatFunc") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]]),Branch (Pattern ("FlatCurry","Case") [16,17,18]) (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","flatFunc") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]])])),Func ("Wrapper","listFunc") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])))) (Rule [1,2,3] (Let [(4,Comb FuncCall ("Prelude","-") [Var 1,Comb FuncCall ("Prelude","length") [Var 3]])] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 4,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","FuncCall") [],Var 2,Var 3]),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb ConsCall ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","FuncPartCall") [Var 4],Var 2,Var 3]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])]))),Func ("Wrapper","compose") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Comb (FuncPartCall 1) ("Wrapper","listFunc") [Lit (Intc  3),Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","oracle") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]])),Func ("Wrapper","unknown") 1 Public (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Comb FuncCall ("Wrapper","listFunc") [Lit (Intc  1),Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","oracle") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'k'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'w'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude","[]") []]]]]]]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude","[]") []]])),Func ("Wrapper","oracleTry") 2 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","splitAt") [Comb FuncCall ("Prelude","-") [Comb FuncCall ("Prelude","length") [Var 2],Lit (Intc  2)],Var 2])] (Let [(4,Comb FuncCall ("Wrapper","oracleTry._#selFP6#argsf") [Var 3])] (Let [(5,Comb FuncCall ("Wrapper","oracleTry._#selFP7#argst") [Var 3])] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","func") [Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","FuncPartCall") [Lit (Intc  2)],Var 1,Var 4],Var 5]]))))),Func ("Wrapper","oracleTry._#selFP6#argsf") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]]) (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 2)])),Func ("Wrapper","oracleTry._#selFP7#argst") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []],TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]]) (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Var 3)])),Func ("Wrapper","partCons") 0 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Wrapper","apply") [],Comb (FuncPartCall 1) ("Wrapper","partial") [Comb FuncCall ("Wrapper","pc") []]])),Func ("Wrapper","partFunc") 0 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 2) ("Wrapper","apply") [],Comb (FuncPartCall 1) ("Wrapper","partial") [Comb FuncCall ("Wrapper","pf") []]])),Func ("Wrapper","pc") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Comb (FuncPartCall 1) ("Wrapper","listFunc") [Lit (Intc  3),Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","oracle") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'C'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]])),Func ("Wrapper","pf") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Comb (FuncPartCall 1) ("Wrapper","listFunc") [Lit (Intc  3),Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","oracle") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'F'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]])),Func ("Wrapper","partCall") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Comb (FuncPartCall 1) ("Wrapper","listFunc") [Lit (Intc  2),Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","oracle") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'C'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]])),Func ("Wrapper","partial") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (FuncType (TCons ("Prelude","Int") []) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Comb FuncCall ("Prelude","$") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","foldr1") [Comb (FuncPartCall 2) ("Wrapper","partial._#lambda4") []],Comb (FuncPartCall 1) ("Prelude","map") [Comb (FuncPartCall 1) ("Wrapper","partial._#lambda5") []]],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Comb FuncCall ("Prelude","zip") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","reverse") [],Comb FuncCall ("Prelude","enumFromTo") [Lit (Intc  1),Var 2]],Comb ConsCall ("Prelude",":") [Var 1,Comb FuncCall ("Prelude","repeat") [Comb FuncCall ("Wrapper","partCall") []]]]]])),Func ("Wrapper","partial._#lambda4") 2 Private (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","compose") [],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]])),Func ("Wrapper","partial._#lambda5") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])]) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Comb FuncCall ("Wrapper","dotted") [Comb FuncCall ("Prelude","-") [Var 2,Lit (Intc  1)],Comb FuncCall ("Prelude","apply") [Var 3,Comb ConsCall ("Prelude","[]") []]])])),Func ("Wrapper","dotted") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [1,2] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Lit (Intc  0)]) [Branch (Pattern ("Prelude","True") []) (Var 2),Branch (Pattern ("Prelude","False") []) (Case  Rigid (Comb FuncCall ("Prelude","otherwise") []) [Branch (Pattern ("Prelude","True") []) (Comb FuncCall ("Wrapper","dotted") [Comb FuncCall ("Prelude","-") [Var 1,Lit (Intc  1)],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","compose") [],Comb ConsCall ("Prelude",":") [Var 2,Comb ConsCall ("Prelude","[]") []]]]),Branch (Pattern ("Prelude","False") []) (Comb FuncCall ("Prelude","failed") [])])])),Func ("Wrapper","inOraclePartCall") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") []))) (Rule [1] (Comb (FuncPartCall 1) ("Wrapper","listFunc") [Comb FuncCall ("Wrapper","arityInOracle") [Var 1],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","oracle") [],Var 1]])),Func ("Wrapper","errorCall") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Comb ConsCall ("FlatCurry","Comb") [Comb ConsCall ("FlatCurry","FuncCall") [],Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","prelude") [],Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb ConsCall ("Prelude",":") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Wrapper","string") [],Var 1],Comb ConsCall ("Prelude","[]") []]])),Func ("Wrapper","safeIOResult") 1 Public (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") [])) (Rule [1] (Comb FuncCall ("Wrapper","listFunc") [Lit (Intc  1),Comb ConsCall ("Prelude","(,)") [Comb FuncCall ("Wrapper","oracle") [],Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]],Comb ConsCall ("Prelude",":") [Var 1,Comb ConsCall ("Prelude","[]") []]])),Func ("Wrapper","specialIOs") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (Rule [] (Comb FuncCall ("Prelude","zip") [Comb FuncCall ("Prelude","repeat") [Comb FuncCall ("Wrapper","prelude") []],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'F'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'S'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'T'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]],Comb ConsCall ("Prelude","[]") []]]]])),Func ("Wrapper","implementedInOracle") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (Rule [] (Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Lit (Charc  'U'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '_'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'P'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude","(,)") [Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude","[]") []]]]],Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'F'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","zip") [Comb FuncCall ("Prelude","repeat") [Comb FuncCall ("Wrapper","prelude") []],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude","[]") []]]]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  '$'),Comb ConsCall ("Prelude",":") [Lit (Charc  '!'),Comb ConsCall ("Prelude","[]") []]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  '$'),Comb ConsCall ("Prelude",":") [Lit (Charc  '!'),Comb ConsCall ("Prelude",":") [Lit (Charc  '!'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  '$'),Comb ConsCall ("Prelude",":") [Lit (Charc  '#'),Comb ConsCall ("Prelude","[]") []]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  '$'),Comb ConsCall ("Prelude",":") [Lit (Charc  '#'),Comb ConsCall ("Prelude",":") [Lit (Charc  '#'),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  '>'),Comb ConsCall ("Prelude",":") [Lit (Charc  '>'),Comb ConsCall ("Prelude",":") [Lit (Charc  '='),Comb ConsCall ("Prelude","[]") []]]],Comb ConsCall ("Prelude",":") [Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'F'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Comb ConsCall ("Prelude","[]") []]]]]]]]]]])),Func ("Wrapper","arityInOracle") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [1] (Case  Rigid (Comb FuncCall ("Prelude","==") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  '_'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'P'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]) [Branch (Pattern ("Prelude","True") []) (Lit (Intc  2)),Branch (Pattern ("Prelude","False") []) (Lit (Intc  3))])),Func ("Wrapper","addOrc") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","maybe") [Var 1,Comb (FuncPartCall 1) ("Prelude","id") [],Var 2],Comb FuncCall ("Wrapper","newModName") [Var 3]])),Func ("Wrapper","addFcy") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Comb (FuncPartCall 1) ("Prelude","flip") [Comb (FuncPartCall 2) ("Prelude","++") [],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","[]") []]]]]]))] []
diff --git a/Curry/Module/Wrapper.fint b/Curry/Module/Wrapper.fint
new file mode 100644
--- /dev/null
+++ b/Curry/Module/Wrapper.fint
@@ -0,0 +1,1 @@
+Prog "Wrapper" ["FileGoodies","FlatCurry","Prelude"] [] [Func ("Wrapper","prelude") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Var 0)),Func ("Wrapper","eventMod") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Var 0)),Func ("Wrapper","oracle") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Var 0)),Func ("Wrapper","ioexts") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (Rule [] (Var 0)),Func ("Wrapper","newModName") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0)),Func ("Wrapper","newModNameQ") 1 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0]) (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TVar 0])) (Rule [] (Var 0)),Func ("Wrapper","tRef") 0 Public (TCons ("FlatCurry","TypeExpr") []) (Rule [] (Var 0)),Func ("Wrapper","tR") 0 Public (FuncType (TCons ("FlatCurry","TypeExpr") []) (TCons ("FlatCurry","TypeExpr") [])) (Rule [] (Var 0)),Func ("Wrapper","lET") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","Int") [],TCons ("FlatCurry","Expr") []]]) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","ref") 0 Public (TCons ("Prelude","Int") []) (Rule [] (Var 0)),Func ("Wrapper","flatFunc") 0 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","flatCons") 0 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","func") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","list") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Var 0)),Func ("Wrapper","char") 0 Public (FuncType (TCons ("Prelude","Char") []) (TCons ("FlatCurry","Expr") [])) (Rule [] (Var 0)),Func ("Wrapper","string") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Var 0)),Func ("Wrapper","nil") 0 Public (TCons ("FlatCurry","Expr") []) (Rule [] (Var 0)),Func ("Wrapper","colon") 2 Public (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","run") 2 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","event") 4 Public (FuncType (TCons ("Prelude","[]") [TVar 0]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))))) (Rule [] (Var 0)),Func ("Wrapper","collapse") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","closeRef") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","extIO") 1 Public (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") [])) (Rule [] (Var 0)),Func ("Wrapper","unfold") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") [])))) (Rule [] (Var 0)),Func ("Wrapper","replace") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","expand") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") [])))) (Rule [] (Var 0)),Func ("Wrapper","fresh") 0 Public (TCons ("FlatCurry","Expr") []) (Rule [] (Var 0)),Func ("Wrapper","unit") 0 Public (TCons ("FlatCurry","Expr") []) (Rule [] (Var 0)),Func ("Wrapper","apply") 2 Public (FuncType (TCons ("FlatCurry","Expr") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","listFunc") 3 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])))) (Rule [] (Var 0)),Func ("Wrapper","compose") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Var 0)),Func ("Wrapper","unknown") 1 Public (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") [])) (Rule [] (Var 0)),Func ("Wrapper","oracleTry") 2 Public (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","partCons") 0 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","partFunc") 0 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","pc") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Var 0)),Func ("Wrapper","pf") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Var 0)),Func ("Wrapper","partCall") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Var 0)),Func ("Wrapper","partial") 2 Public (FuncType (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") [])) (FuncType (TCons ("Prelude","Int") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","dotted") 2 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","inOraclePartCall") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("FlatCurry","Expr") []]) (TCons ("FlatCurry","Expr") []))) (Rule [] (Var 0)),Func ("Wrapper","errorCall") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("FlatCurry","Expr") [])) (Rule [] (Var 0)),Func ("Wrapper","safeIOResult") 1 Public (FuncType (TCons ("FlatCurry","Expr") []) (TCons ("FlatCurry","Expr") [])) (Rule [] (Var 0)),Func ("Wrapper","specialIOs") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (Rule [] (Var 0)),Func ("Wrapper","implementedInOracle") 0 Public (TCons ("Prelude","[]") [TCons ("Prelude","(,)") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []],TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]]) (Rule [] (Var 0)),Func ("Wrapper","arityInOracle") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","Int") [])) (Rule [] (Var 0)),Func ("Wrapper","addOrc") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])))) (Rule [] (Var 0)),Func ("Wrapper","addFcy") 0 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","[]") [TCons ("Prelude","Char") []])) (Rule [] (Var 0))] []
diff --git a/KiCS-prophecy.cabal b/KiCS-prophecy.cabal
new file mode 100644
--- /dev/null
+++ b/KiCS-prophecy.cabal
@@ -0,0 +1,58 @@
+Name:          KiCS-prophecy
+Version:       0.1.0
+Cabal-Version: >= 1.6
+Author:        Bernd Braßel
+Maintainer:    Bernd Braßel
+Homepage:      http://curry-language.org
+License:       OtherLicense
+License-File:  LICENSE
+Category:      Debug
+build-type:    Custom
+Synopsis:      a transformation used by the kics debugger 
+Description:   This package contains a transformation of the debugger 
+               for the Curry to Haskell compiler "kics".
+Stability:     experimental
+extra-tmp-files: Curry/Module/*.fcy, 
+                 Curry/Module/*.fint 
+extra-source-files:
+   Curry/Module/*.hs.include
+Data-Dir: .
+Data-Files:    
+   Curry/Module/*.fcy
+   Curry/Module/*.fint
+
+Library
+  hs-source-dirs: .
+  Build-Depends:  
+    base == 4.1.*,
+    filepath,
+    KiCS >= 0.9.1
+
+  Exposed-Modules:
+    Curry.Files.ProphecyPath
+
+    Curry.Module.Oracle
+    Curry.Module.CEventOracle
+
+    Curry.Module.LiftCases
+    Curry.Module.Make
+
+  Other-Modules:
+    Curry.Module.EventOracle
+    Paths_KiCS_prophecy
+
+  install-includes: coracle/coracle.h
+  c-sources:        coracle/coracle.c
+
+Executable prophecy
+  main-is: prophecy.hs
+  hs-source-dirs: ., .curry/kics
+  Build-Depends:  
+    base == 4.1.*,
+    KiCS >= 0.9.0
+  Other-Modules:
+    Curry.Module.AddWorld
+    Curry.Module.Wrapper
+    Curry.Module.Transform
+    Curry.Module.Make
+    Curry.Module.LiftCases
diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,34 @@
+KiCS (Kiel Curry System) License
+
+Copyright (c) 2009, University of Kiel
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+- Redistributions of source code must retain the above copyright
+  notice, this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright
+  notice, this list of conditions and the following disclaimer in the
+  documentation and/or other materials provided with the distribution.
+
+- None of the names of the copyright holders and contributors may be
+  used to endorse or promote products derived from this software without
+  specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,87 @@
+module Main where
+
+import System.FilePath
+import System.Directory
+import Monad
+import Data.List
+
+import Distribution.Simple
+import Distribution.Simple.Setup 
+import Distribution.Simple.Program
+import Distribution.Simple.LocalBuildInfo
+import Distribution.Simple.PreProcess
+import Distribution.PackageDescription 
+import Distribution.Verbosity
+import Distribution.ModuleName (ModuleName(..))
+
+import Curry.Files.CymakePath
+import Curry.Files.KiCSPath
+
+kics, cymake :: IO Program
+kics   = mkProg getKiCS
+cymake = mkProg getCymake
+
+mkProg getProg = do
+  call <- getProg
+  return (simpleProgram (takeBaseName call))
+            {programFindLocation = \_-> return (Just call)}
+
+prophecy, mkstrict :: Program
+prophecy = simpleProgram "prophecy"
+mkstrict = simpleProgram "mkstrict"
+
+main :: IO ()
+main = do
+  cymakeProg <- cymake
+  kicsProg   <- kics
+  defaultMainWithHooks simpleUserHooks
+    {hookedPrograms=kicsProg:cymakeProg:hookedPrograms simpleUserHooks
+    ,postConf=myPostConf
+    ,hookedPreProcessors=[("curry",mkModule)]
+    }
+
+unflag = fromFlagOrDefault silent
+
+requireProg :: ConfigFlags -> LocalBuildInfo -> IO Program 
+            -> IO ConfiguredProgram
+requireProg verb lbi prog = do
+  p <- prog
+  (cp,_) <- requireProgram (unflag $ configVerbosity verb) p AnyVersion 
+                           (withPrograms lbi)
+  return cp
+ 
+callProg :: Verbosity -> LocalBuildInfo -> IO Program -> Args -> IO ()
+callProg verb lbi prog args = do
+  p <- prog
+  rawSystemProgramConf verb p (withPrograms lbi) args
+  
+myPostConf :: 
+  Args -> ConfigFlags -> PackageDescription -> LocalBuildInfo -> IO ()
+myPostConf args confFlags descrs lbi = do
+  let require = requireProg confFlags lbi
+  require cymake
+  require kics
+  postConf simpleUserHooks args confFlags descrs lbi
+
+mkModule :: BuildInfo -> LocalBuildInfo -> PreProcessor
+mkModule _ lbi = PreProcessor
+  {platformIndependent = True
+  ,runPreProcessor     = mkSimplePreProcessor $ \ inf outf verb -> do
+                          datadir <- getKiCSLibDir 
+                          runKics datadir lbi inf outf verb}
+
+runKics :: FilePath -> LocalBuildInfo 
+        -> FilePath -> FilePath -> Verbosity -> IO ()
+runKics datadir lbi infile outfile verb 
+  = do call cymake ["-iCurry/Module","-i"++datadir,
+                    "--no-hidden-subdir",
+                    "-e","--flat",infile]
+       callKics   $ ["-userlibpath","Curry/Module"] ++
+         if isSuffixOf "Transform.curry" infile 
+         then ["-executable","prophecy"]
+         else []
+ where
+    call = callProg verb lbi
+    callKics args = 
+      call kics $ args ++ ["-nomake","-o",outfile,infile]
+
diff --git a/coracle/coracle.c b/coracle/coracle.c
new file mode 100644
--- /dev/null
+++ b/coracle/coracle.c
@@ -0,0 +1,156 @@
+#include <stdlib.h>
+#include <stdio.h>
+
+
+struct node
+{
+  struct node* p;
+  int  c;
+  struct node* s;
+};
+
+struct node startmarker;
+struct node endmarker;
+struct node* chain;
+
+struct node* newref()
+{
+  struct node* n;
+  n=(struct node*) malloc(sizeof(struct node));
+  n->c=0;
+  return(n);
+}
+
+struct node* nextref(int unit)
+{
+  struct node* ref=chain;
+  chain=chain->s;
+  return(ref);
+}
+
+struct node* constructref(struct node* par, int cost, struct node* suc)
+{
+  struct node* n=newref();
+  n->p=par;
+  n->c=cost;
+  n->s=suc;
+  return(n);
+}
+
+void collapse(struct node* n)
+{
+  (n->p)->s=n->s;
+  (n->s)->p=n->p;
+  (n->s)->c+=n->c+1;
+  free(n);
+}
+
+void close_ref(struct node* n)
+{
+  (n->p)->s=n->s;
+  (n->s)->p=n->p;
+  (n->s)->c+=n->c;
+  free(n);
+}
+
+void inconly(struct node* n)
+{
+  n->c++;
+}
+
+void expand(struct node* r,int max)
+{
+  r->c++;
+  struct node* last=r->s;
+  struct node* r1=r;
+  struct node* r2;
+
+  int i=0;
+  while(i<max)
+    {
+      r2=newref();
+      r1->s=r2;
+      r2->p=r1;
+      r1=r2;
+      i++;
+    }
+  r2->s=last;
+  last->p=r2;
+
+  chain=r->s;
+}
+
+struct node* init()
+{
+  startmarker.c=0;
+  endmarker.c=0;
+  endmarker.s=0;
+  startmarker.p=0;
+
+  struct node* mainR=constructref(&startmarker,0,&endmarker);
+  startmarker.s=mainR;
+  endmarker.p=mainR;
+
+  return(mainR);
+}
+
+void finalize(char *stepfilename)
+{
+  struct node n=startmarker;
+  FILE *stepfile;
+  stepfile=fopen(stepfilename,"w");
+  fprintf(stepfile,"[");
+  while(n.s)
+    {
+      n=*(n.s);
+      fprintf(stepfile,"%i",n.c);
+      if(n.s){fprintf(stepfile,",");};
+    }
+  fprintf(stepfile,"]");
+  fclose(stepfile);
+}
+
+void print_oracle()
+{
+  int i=0;
+  struct node n=startmarker;
+  printf("[");
+  while(n.s && i<100)
+    {
+      n=*(n.s);
+      printf("%i",n.c);
+      if(n.s){printf(",");};
+      i++;
+    }
+  if (n.s) {printf("...");} else {printf("]");} 
+  
+  n=endmarker;
+  i=0;
+  printf("[");
+
+  while(n.p && i<100)
+    {
+      printf("%i",n.c);
+      n=*(n.p);
+      if(n.p){printf(",");};
+      i++;
+    }
+  if (n.p) {printf("...");} else {printf("]");} 
+  printf("\n");
+
+}
+
+/*
+main() { 
+   struct node* ref = init(); 
+
+   expand(ref,1); 
+
+   struct node* r1 = nextref(1); 
+   inconly(ref); 
+   collapse(ref); 
+   close_ref(r1); 
+
+   finalize("test.steps"); 
+ } 
+*/
diff --git a/coracle/coracle.h b/coracle/coracle.h
new file mode 100644
--- /dev/null
+++ b/coracle/coracle.h
@@ -0,0 +1,19 @@
+struct node;
+struct node startmarker;
+struct node endmarker;
+struct node chain;
+
+struct node* init();
+struct node* nextref(int unit);
+
+void collapse(struct node* n);
+void close_ref(struct node* n);
+void inconly(struct node* n);
+void expand(struct node* r,int max);
+
+void finalize(char *stepfilename);
+
+
+
+
+
diff --git a/dist/build/Curry/Module/CEventOracle.hs b/dist/build/Curry/Module/CEventOracle.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/CEventOracle.hs
@@ -0,0 +1,270 @@
+{-# OPTIONS -cpp #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+{-# LANGUAGE EmptyDataDecls, ForeignFunctionInterface #-}
+
+{-# INCLUDE <coracle.h> #-}
+
+module Curry.Module.CEventOracle (module Curry.Module.CEventOracle) where
+
+import Curry.RunTimeSystem
+import Curry.Module.IOExts
+import Curry.Module.Prelude
+import Curry.Module.System
+
+
+
+-- begin included
+
+
+
+import Foreign
+
+import Foreign
+import Foreign.C.String	
+
+foreign import ccall unsafe "static coracle.h init"      cinitialize :: Ref
+foreign import ccall unsafe "static coracle.h nextref"   cfresh      :: Int -> Ref
+
+foreign import ccall unsafe "static coracle.h collapse"  ccollapse   :: Ref -> ()
+foreign import ccall unsafe "static coracle.h close_ref" ccloseRef   :: Ref -> ()
+foreign import ccall unsafe "static coracle.h inconly"   creplace    :: Ref -> ()
+foreign import ccall unsafe "static coracle.h expand"    cexpand     :: Ref -> Int -> ()
+
+foreign import ccall unsafe "coracle.h finalize" cfinalize :: CString -> ()
+
+data CRef
+
+type Ref = Ptr CRef
+
+newtype C_Ref = C_Ref Ref
+
+instance Show C_Ref
+instance Read C_Ref
+instance Eq   C_Ref
+instance BaseCurry C_Ref
+instance Curry C_Ref
+
+initRef :: Result (C_IO C_Ref)
+initRef = let ref = cinitialize in seq ref (Curry.Module.Prelude.return (C_Ref ref))
+
+finalize :: C_String -> Result (C_IO T0)
+finalize s _ = C_IO (\ _ -> do
+  s' <- newCString (fromCurry s)
+  seq (cfinalize s') (Prelude.return (IOVal (T0))))
+
+--- Side effect that computes a fresh reference.
+fresh :: a -> Result C_Ref
+fresh _ _ =  C_Ref (cfresh 0)
+
+--- increase couter of ref by one
+replace :: C_Ref -> a -> b -> a
+replace  (C_Ref ref) x _ = seq (creplace ref) x
+
+--- Remove a ref and combine and counter +1
+collapse :: C_Ref -> a -> b -> a
+collapse  (C_Ref ref) x _ = seq (ccollapse ref) x
+
+--- Remove a ref and combine and counter +1
+closeRef :: C_Ref -> a -> b -> a
+closeRef  (C_Ref ref) x _ = seq (ccloseRef ref) x
+
+
+--- Projection on last argument that releases an event as a side effect.
+-- increment step counter of first ref and add remaining refs
+-- list has to be at least of size 1
+expand :: C_Ref -> List C_Ref -> a -> Result a
+expand  (C_Ref ref) refs x _
+  = seq (cexpand ref (len refs)) (seq (evalRefs refs) x)
+ where
+  len List      = 0
+  len (_ :< rs) = 1+len rs
+
+  evalRefs List = ()
+  evalRefs (r :< rs) = seq r (evalRefs rs)
+
+-- compare to BaseCurry.mapOr
+c_onBranches :: (BaseCurry a,BaseCurry b) => 
+  C_Ref -> (C_Ref -> a -> Result b) -> OrRef -> Branches a -> Result b
+c_onBranches r cont orref bs = 
+  evalRef' True (\ r x st -> replace r (cont r x st) st) (branching orref bs) r 
+  
+liftCase :: (BaseCurry a,BaseCurry b) => 
+  C_Ref -> (C_Ref -> a -> Result b) -> OrRef -> Branches a -> (Int -> State) -> b
+liftCase ref f orref bs = 
+  expand' ref (length bs - 1) (\ refs -> lift ($) orref (zipWith f refs bs))
+
+expand' :: C_Ref -> Int -> ([C_Ref] -> a) -> a
+expand' (C_Ref ref) l cont = 
+   cexpand ref l `seq`
+   evalRefs refs `seq`
+   cont (map C_Ref (ref:refs))
+ where
+   refs = map cfresh (replicate l 0)
+   
+   evalRefs [] = ()
+   evalRefs (r : rs) = seq r (evalRefs rs)
+   
+
+--- generating a fresh variable
+unknown :: Curry a => C_Ref -> Result a
+unknown r st = freeF (\x -> gen r x st)
+
+gen :: Curry a => C_Ref -> a -> Result a
+gen r x st = case consKind x of
+  Val       -> push r x st
+  Branching -> liftCase r gen (orRef x) (branches x) (const st)
+
+push :: Curry a => C_Ref -> a -> Result a
+push r x st = case foldCurry (\ _ n _ -> n+1) 0 x st of
+  0 -> collapse r x st
+  1 -> replace r (propagate (\_ -> gen r) x st) st
+  n -> expand' r (n-1) (\ refs -> propagate (distRefs refs) x st)
+
+  where
+    distRefs rs i x = gen (rs!!i) x
+  
+ 
+type RefFun a b = C_Ref -> Result (Prim (a -> Result b))
+
+($!), ($#),($!!),($##), apply :: (Curry a,Curry b) => 
+  Prim (RefFun a b) -> a -> C_Ref -> Result b
+(cont $! x)  r = Curry.Module.CEventOracle.prepApply hnfRef x cont r
+(cont $# x)  r = Curry.Module.CEventOracle.prepApply (evalRef True) x cont r
+(cont $!! x) r st = Curry.Module.CEventOracle.prepApply hnfRef (nfCTC const x st) cont r st
+(cont $## x) r st = Curry.Module.CEventOracle.prepApply (evalRef True) (gnfCTC const x st) cont r st
+
+
+apply cont x r = Curry.Module.CEventOracle.prepApply (\ cont' x' r' st' -> 
+                               replace r' (Curry.Module.Prelude.apply (cont' r' st') x' st') st') x cont r
+
+prepApply :: (BaseCurry a,BaseCurry b) => 
+  (RefFun b a -> b -> C_Ref -> Result a) -> b -> Prim (RefFun b a) -> C_Ref -> Result a
+prepApply  prep x (PrimValue f) cref st = prep f x cref st
+prepApply  prep x (PrimOr r bs) cref st = 
+  c_onBranches cref (\ r' f' -> Curry.Module.CEventOracle.prepApply prep x f' r') r bs st
+prepApply  _    _ f                r st  = collapse r (patternFail "Prelude.prepApply" f) st
+
+hnfRef :: (BaseCurry a,BaseCurry b) => RefFun b a -> b -> C_Ref -> Result a
+hnfRef = evalRef False 
+
+evalRef :: (BaseCurry a,BaseCurry b) => HNFMode -> RefFun a b -> a -> C_Ref -> Result b
+evalRef mode cont = evalRef' mode (\ r x st ->  replace r (Curry.Module.Prelude.apply (cont r st) x st) st)
+
+evalRef' :: (BaseCurry a,BaseCurry b) => 
+            HNFMode -> (C_Ref -> a -> Result b) -> a -> C_Ref -> Result b
+evalRef' mode cont x r state = 
+ case consKind x of
+   Failed    -> closeRef r (addException err x) state
+   Branching -> let orref = orRef x
+                    bs = branches x in
+    manipulateStore
+      (closeRef r (Curry.RunTimeSystem.failed (curryError "=:=")) state)
+      contEval
+      (\ ref' contSt -> if mode || not (isGenerator orref)
+                      then liftCase r contEvalRef (narrowOrRef orref) bs contSt
+                      else cont r (branching ref' bs) state)
+      (\ orref' x' st' -> branching orref' [contEval x' st'])
+      orref bs state
+   Val       -> cont r x state
+
+  where
+    err = curryError ("Prelude."++if mode then "$#" else "$!")
+    contEvalRef r' x' st' = evalRef' mode cont x' r' st'
+    contEval = contEvalRef r
+
+
+
+
+-- end included
+
+c_initialize :: (Curry t0) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.System.c_getProgName(st))(Curry.Module.Prelude.pf(Curry.Module.CEventOracle.c_initialize'46_'35lambda2(x1)))(st)
+
+
+
+c_initialize'46_'35lambda2 :: (Curry t10) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t10)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize'46_'35lambda2 x1 x2 st = let {x3 = Curry.Module.Prelude.op_43_43(x2)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List)))))(st)} in Curry.Module.Prelude.op_62_62(Curry.Module.IOExts.c_setAssoc((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))(Curry.Module.Prelude.List))))))(x3)(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_writeFile(x3)(Curry.Module.Prelude.List)(st))(Curry.Module.Prelude.op_62_62_61(Curry.Module.CEventOracle.c_initRef(st))(Curry.Module.Prelude.pf(Curry.Module.CEventOracle.c_initialize'46_'35lambda2'46_'35lambda3(x1)(x2)))(st))(st))(st)
+
+
+
+c_initialize'46_'35lambda2'46_'35lambda3 :: (Curry t10) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t10)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize'46_'35lambda2'46_'35lambda3 x1 x2 x3 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_apply(x1)(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.CEventOracle.c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4(x2)))(st)
+
+
+
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4 :: (Curry t10) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t10 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4 x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_getSearchTree(x2)(st))(Curry.Module.Prelude.pf(Curry.Module.CEventOracle.c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5(x1)))(st)
+
+
+
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5 :: (Curry t10) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.C_SearchTree t10) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5 x1 x2 st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_catchFail(Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_putStrLn((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))))))))))))))))))))(st))(Curry.Module.Prelude.op_36_33_33(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(x2)(st))(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_putStrLn((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('W'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.c_failed(st))(st))(st))(st))(Curry.Module.CEventOracle.c_finalize(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))(Curry.Module.Prelude.List)))))))(st))(st))(st)
+
+
+
+c_initRef :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.CEventOracle.C_Ref
+c_initRef st = Curry.Module.CEventOracle.initRef(st)
+
+
+
+c_finalize :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_finalize x1 st = Curry.Module.CEventOracle.finalize(x1)(st)
+
+
+
+c_fresh :: Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.CEventOracle.C_Ref
+c_fresh x1 st = Curry.Module.CEventOracle.fresh(x1)(st)
+
+
+
+c_replace :: (Curry t0) => Curry.Module.CEventOracle.C_Ref -> t0 -> Curry.RunTimeSystem.State -> t0
+c_replace x1 x2 st = Curry.Module.CEventOracle.replace(x1)(x2)(st)
+
+
+
+c_collapse :: (Curry t0) => Curry.Module.CEventOracle.C_Ref -> t0 -> Curry.RunTimeSystem.State -> t0
+c_collapse x1 x2 st = Curry.Module.CEventOracle.collapse(x1)(x2)(st)
+
+
+
+c_closeRef :: (Curry t0) => Curry.Module.CEventOracle.C_Ref -> t0 -> Curry.RunTimeSystem.State -> t0
+c_closeRef x1 x2 st = Curry.Module.CEventOracle.closeRef(x1)(x2)(st)
+
+
+
+c_expand :: (Curry t0) => Curry.Module.CEventOracle.C_Ref -> (Curry.Module.Prelude.List Curry.Module.CEventOracle.C_Ref) -> t0 -> Curry.RunTimeSystem.State -> t0
+c_expand x1 x2 x3 st = Curry.Module.CEventOracle.expand(x1)(x2)(x3)(st)
+
+
+
+c_unknown :: (Curry t0) => Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t0
+c_unknown x1 st = Curry.Module.CEventOracle.unknown(x1)(st)
+
+
+
+op_36_33 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1))) -> t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t1
+op_36_33 x1 x2 x3 st = (Curry.Module.CEventOracle.$!)(x1)(x2)(x3)(st)
+
+
+
+op_36_33_33 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1))) -> t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t1
+op_36_33_33 x1 x2 x3 st = (Curry.Module.CEventOracle.$!!)(x1)(x2)(x3)(st)
+
+
+
+op_36_35 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1))) -> t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t1
+op_36_35 x1 x2 x3 st = (Curry.Module.CEventOracle.$#)(x1)(x2)(x3)(st)
+
+
+
+op_36_35_35 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1))) -> t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t1
+op_36_35_35 x1 x2 x3 st = (Curry.Module.CEventOracle.$##)(x1)(x2)(x3)(st)
+
+
+
+c_apply :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1))) -> t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t1
+c_apply x1 x2 x3 st = Curry.Module.CEventOracle.apply(x1)(x2)(x3)(st)
+
+
diff --git a/dist/build/Curry/Module/EventOracle.hs b/dist/build/Curry/Module/EventOracle.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/EventOracle.hs
@@ -0,0 +1,311 @@
+{-# OPTIONS -cpp #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.EventOracle (module Curry.Module.EventOracle) where
+
+import Curry.RunTimeSystem
+import Curry.Module.IOExts
+import Curry.Module.Prelude
+import Curry.Module.System
+import Curry.Module.Unsafe
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_Ref = Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node
+
+type C_Cost = Curry.Module.Prelude.C_Int
+
+data C_Node = C_Node (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) Curry.Module.Prelude.C_Int (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node)
+  | C_Marker
+  | C_Collapsed
+  | C_NodeFail Curry.RunTimeSystem.C_Exceptions
+  | C_NodeOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.EventOracle.C_Node)
+
+instance BaseCurry Curry.Module.EventOracle.C_Node where
+  nf f (Curry.Module.EventOracle.C_Node x1 x2 x3) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> f(Curry.Module.EventOracle.C_Node(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.EventOracle.C_Node x1 x2 x3) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> f(Curry.Module.EventOracle.C_Node(v1)(v2)(v3))(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.EventOracle.C_NodeOr(Curry.RunTimeSystem.mkRef(r)(3)(i))([Curry.Module.EventOracle.C_Node(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int)))),Curry.Module.EventOracle.C_Marker,Curry.Module.EventOracle.C_Collapsed]))(3)
+
+  failed  = Curry.Module.EventOracle.C_NodeFail
+
+  branching  = Curry.Module.EventOracle.C_NodeOr
+
+  consKind (Curry.Module.EventOracle.C_NodeOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.EventOracle.C_NodeFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.EventOracle.C_NodeFail x) = x
+
+  orRef (Curry.Module.EventOracle.C_NodeOr x _) = x
+
+  branches (Curry.Module.EventOracle.C_NodeOr _ x) = x
+
+
+
+
+
+instance Curry Curry.Module.EventOracle.C_Node where
+  strEq (Curry.Module.EventOracle.C_Node x1 x2 x3) (Curry.Module.EventOracle.C_Node y1 y2 y3) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(Curry.Module.Prelude.genStrEq(x3)(y3)(st))(st))(st)
+  strEq Curry.Module.EventOracle.C_Marker Curry.Module.EventOracle.C_Marker st = Curry.Module.Prelude.strEqSuccess
+  strEq Curry.Module.EventOracle.C_Collapsed Curry.Module.EventOracle.C_Collapsed st = Curry.Module.Prelude.strEqSuccess
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.EventOracle.C_Node x1 x2 x3) (Curry.Module.EventOracle.C_Node y1 y2 y3) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x2)(y2)(st))(Curry.Module.Prelude.genEq(x3)(y3)(st))(st))(st)
+  eq Curry.Module.EventOracle.C_Marker Curry.Module.EventOracle.C_Marker st = Curry.Module.Prelude.C_True
+  eq Curry.Module.EventOracle.C_Collapsed Curry.Module.EventOracle.C_Collapsed st = Curry.Module.Prelude.C_True
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.EventOracle.C_Node x1 x2 x3) st = Curry.Module.EventOracle.C_Node(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))
+  propagate f Curry.Module.EventOracle.C_Marker st = Curry.Module.EventOracle.C_Marker
+  propagate f Curry.Module.EventOracle.C_Collapsed st = Curry.Module.EventOracle.C_Collapsed
+
+  foldCurry f c (Curry.Module.EventOracle.C_Node x1 x2 x3) st = f(x1)(f(x2)(f(x3)(c)(st))(st))(st)
+  foldCurry f c Curry.Module.EventOracle.C_Marker st = c
+  foldCurry f c Curry.Module.EventOracle.C_Collapsed st = c
+
+  typeName _ = "Node"
+
+  showQ d (Curry.Module.EventOracle.C_Node x1 x2 x3) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("EventOracle.Node "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x3))))))
+
+
+  showQ _ Curry.Module.EventOracle.C_Marker = Prelude.showString("EventOracle.Marker")
+  showQ _ Curry.Module.EventOracle.C_Collapsed = Prelude.showString("EventOracle.Collapsed")
+  showQ _ (Curry.Module.EventOracle.C_NodeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.EventOracle.C_Node where
+  showsPrec d (Curry.Module.EventOracle.C_Node x1 x2 x3) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Node "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x3))))))
+
+
+  showsPrec _ Curry.Module.EventOracle.C_Marker = Prelude.showString("Marker")
+  showsPrec _ Curry.Module.EventOracle.C_Collapsed = Prelude.showString("Collapsed")
+  showsPrec _ (Curry.Module.EventOracle.C_NodeOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Read Curry.Module.EventOracle.C_Node where
+  readsPrec d r = (Prelude.++)(Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.EventOracle.C_Node(x1)(x2)(x3))(r3) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("EventOracle")("Node")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1), ((,) x3 r3) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r2)])(r))((Prelude.++)(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.EventOracle.C_Marker)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("EventOracle")("Marker")(r)])(r))(Prelude.readParen(Prelude.False)(\ r -> [(,)(Curry.Module.EventOracle.C_Collapsed)(r0) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("EventOracle")("Collapsed")(r)])(r)))
+
+
+
+
+
+c_initialize :: (Curry t0) => (Curry.Module.Prelude.Prim ((Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.System.c_getProgName(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_initialize'46_'35lambda2(x1)))(st)
+
+
+
+c_initialize'46_'35lambda2 :: (Curry t59) => (Curry.Module.Prelude.Prim ((Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t59)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize'46_'35lambda2 x1 x2 st = let {x3 = Curry.Module.Prelude.op_43_43(x2)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List)))))(st)} in Curry.Module.Prelude.op_62_62(Curry.Module.IOExts.c_setAssoc((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))(Curry.Module.Prelude.List))))))(x3)(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_writeFile(x3)(Curry.Module.Prelude.List)(st))(Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_newIORef(Curry.Module.Prelude.c_error((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('M'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('k'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))(Curry.Module.Prelude.List))))))))))))(st))(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_initialize'46_'35lambda2'46_'35lambda3(x1)(x2)))(st))(st))(st)
+
+
+
+c_initialize'46_'35lambda2'46_'35lambda3 :: (Curry t59) => (Curry.Module.Prelude.Prim ((Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t59)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize'46_'35lambda2'46_'35lambda3 x1 x2 x3 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_newIORef(Curry.Module.Prelude.c_error((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('M'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('k'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))(Curry.Module.Prelude.List))))))))))(st))(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4(x1)(x2)(x3)))(st)
+
+
+
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4 :: (Curry t59) => (Curry.Module.Prelude.Prim ((Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t59)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4 x1 x2 x3 x4 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_newIORef(Curry.Module.EventOracle.C_Node(x3)(Curry.Module.Prelude.C_Zero)(x4))(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5(x1)(x4)(x2)(x3)))(st)
+
+
+
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5 :: (Curry t59) => (Curry.Module.Prelude.Prim ((Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t59)) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_newIORef(Curry.Module.EventOracle.C_Marker)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5'46_'35lambda6(x1)(x2)(x5)(x3)(x4)))(st)
+
+
+
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5'46_'35lambda6 :: (Curry t59) => (Curry.Module.Prelude.Prim ((Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t59)) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5'46_'35lambda6 x1 x2 x3 x4 x5 x6 st = Curry.Module.Prelude.op_62_62(Curry.Module.IOExts.c_writeIORef(x5)(Curry.Module.EventOracle.C_Node(x6)(Curry.Module.Prelude.C_Zero)(x3))(st))(Curry.Module.Prelude.op_62_62(Curry.Module.IOExts.c_writeIORef(x2)(Curry.Module.EventOracle.C_Node(x3)(Curry.Module.Prelude.C_Zero)(x6))(st))(Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_apply(x1)(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5'46_'35lambda6'46_'35lambda7(x2)(x4)(x5)))(st))(st))(st)
+
+
+
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5'46_'35lambda6'46_'35lambda7 :: (Curry t59) => (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> t59 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_initialize'46_'35lambda2'46_'35lambda3'46_'35lambda4'46_'35lambda5'46_'35lambda6'46_'35lambda7 x1 x2 x3 x4 st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.op_36_33_33(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(x4)(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_putStrLn((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('z'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))(Curry.Module.Prelude.List)))))))))))(st))(Curry.Module.Prelude.op_62_62(Curry.Module.EventOracle.c_finalize(x2)(x3)(x1)(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.T0)(st))(st))(st))(st)
+
+
+
+c_finalize :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_finalize x1 x2 x3 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.EventOracle.c_pointerToList(x2)(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_finalize'46_'35lambda8(x1)))(st)
+
+
+
+c_finalize'46_'35lambda8 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_finalize'46_'35lambda8 x1 x2@((Curry.Module.Prelude.:<) x3 x4) st = Curry.Module.Prelude.c_writeFile(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))(Curry.Module.Prelude.List)))))))(st))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(x4)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(Curry.Module.Prelude.List))))(st))(st)
+c_finalize'46_'35lambda8 x1 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_finalize'46_'35lambda8(x1)(x)(st))(i)(xs)(st)
+c_finalize'46_'35lambda8 x1 x st = Curry.RunTimeSystem.patternFail("EventOracle.finalize._#lambda8")(x)
+
+
+
+c_fresh :: Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node
+c_fresh x1 st = Curry.Module.Unsafe.c_unsafePerformIO(Curry.Module.IOExts.c_newIORef(Curry.Module.Prelude.c_error((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))(Curry.Module.Prelude.List))))))(st))(st))(st)
+
+
+
+c_replace :: (Curry t0) => (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> t0 -> Curry.RunTimeSystem.State -> t0
+c_replace x1 x2 st = Curry.Module.Unsafe.c_unsafePerformIO(Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_replace'46_'35lambda9(x1)(x2)))(st))(st)
+
+
+
+c_replace'46_'35lambda9 :: (Curry t76) => (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> t76 -> Curry.Module.EventOracle.C_Node -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t76
+c_replace'46_'35lambda9 x1 x2 x3 st = Curry.Module.Prelude.op_62_62(Curry.Module.EventOracle.c_replace'46_'35lambda9_case_4(x1)(x3)(st))(Curry.Module.Prelude.c_return(x2)(st))(st)
+
+
+
+c_collapse :: (Curry t0) => (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> t0 -> Curry.RunTimeSystem.State -> t0
+c_collapse x1 x2 st = Curry.Module.Unsafe.c_unsafePerformIO(Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_collapse'46_'35lambda11(x1)(x2)))(st))(st)
+
+
+
+c_collapse'46_'35lambda11 :: (Curry t93) => (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> t93 -> Curry.Module.EventOracle.C_Node -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t93
+c_collapse'46_'35lambda11 x1 x2 x3 st = Curry.Module.Prelude.op_62_62(Curry.Module.EventOracle.c_collapse'46_'35lambda11_case_3(x1)(x3)(st))(Curry.Module.Prelude.c_return(x2)(st))(st)
+
+
+
+c_collapse'46_'35lambda11'46_'35lambda13 :: Curry.Module.Prelude.C_Int -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.Module.EventOracle.C_Node -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_collapse'46_'35lambda11'46_'35lambda13 x1 x2 x3 x4 x5@(Curry.Module.EventOracle.C_Node x6 x7 x8) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x4)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_collapse'46_'35lambda11'46_'35lambda13'46_'35lambda14(x1)(x2)(x7)(x6)(x3)(x4)))(st)
+c_collapse'46_'35lambda11'46_'35lambda13 x1 x2 x3 x4 (Curry.Module.EventOracle.C_NodeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_collapse'46_'35lambda11'46_'35lambda13(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_collapse'46_'35lambda11'46_'35lambda13 x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("EventOracle.collapse._#lambda11._#lambda13")(x)
+
+
+
+c_collapse'46_'35lambda11'46_'35lambda13'46_'35lambda14 :: Curry.Module.Prelude.C_Int -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.Module.Prelude.C_Int -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.Module.EventOracle.C_Node -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_collapse'46_'35lambda11'46_'35lambda13'46_'35lambda14 x1 x2 x3 x4 x5 x6 x7@(Curry.Module.EventOracle.C_Node x8 x9 x10) st = Curry.Module.Prelude.op_62_62(Curry.Module.IOExts.c_writeIORef(x5)(Curry.Module.EventOracle.C_Collapsed)(st))(Curry.Module.Prelude.op_62_62(Curry.Module.IOExts.c_writeIORef(x2)(Curry.Module.EventOracle.C_Node(x4)(x3)(x6))(st))(Curry.Module.Prelude.op_36_33_33(Curry.Module.Prelude.pf(Curry.Module.IOExts.c_writeIORef(x6)))(Curry.Module.EventOracle.C_Node(x2)(Curry.Module.Prelude.op_43(Curry.Module.Prelude.op_43(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x9)(st))(x10))(st))(st))(st)
+c_collapse'46_'35lambda11'46_'35lambda13'46_'35lambda14 x1 x2 x3 x4 x5 x6 (Curry.Module.EventOracle.C_NodeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_collapse'46_'35lambda11'46_'35lambda13'46_'35lambda14(x1)(x2)(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_collapse'46_'35lambda11'46_'35lambda13'46_'35lambda14 x1 x2 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("EventOracle.collapse._#lambda11._#lambda13._#lambda14")(x)
+
+
+
+c_closeRef :: (Curry t0) => (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> t0 -> Curry.RunTimeSystem.State -> t0
+c_closeRef x1 x2 st = Curry.Module.Unsafe.c_unsafePerformIO(Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_closeRef'46_'35lambda15(x1)(x2)))(st))(st)
+
+
+
+c_closeRef'46_'35lambda15 :: (Curry t123) => (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> t123 -> Curry.Module.EventOracle.C_Node -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t123
+c_closeRef'46_'35lambda15 x1 x2 x3 st = Curry.Module.Prelude.op_62_62(Curry.Module.EventOracle.c_closeRef'46_'35lambda15_case_2(x1)(x3)(st))(Curry.Module.Prelude.c_return(x2)(st))(st)
+
+
+
+c_closeRef'46_'35lambda15'46_'35lambda17 :: Curry.Module.Prelude.C_Int -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.Module.EventOracle.C_Node -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_closeRef'46_'35lambda15'46_'35lambda17 x1 x2 x3 x4 x5@(Curry.Module.EventOracle.C_Node x6 x7 x8) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x4)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_closeRef'46_'35lambda15'46_'35lambda17'46_'35lambda18(x1)(x2)(x7)(x6)(x3)(x4)))(st)
+c_closeRef'46_'35lambda15'46_'35lambda17 x1 x2 x3 x4 (Curry.Module.EventOracle.C_NodeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_closeRef'46_'35lambda15'46_'35lambda17(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_closeRef'46_'35lambda15'46_'35lambda17 x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("EventOracle.closeRef._#lambda15._#lambda17")(x)
+
+
+
+c_closeRef'46_'35lambda15'46_'35lambda17'46_'35lambda18 :: Curry.Module.Prelude.C_Int -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.Module.Prelude.C_Int -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.Module.EventOracle.C_Node -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_closeRef'46_'35lambda15'46_'35lambda17'46_'35lambda18 x1 x2 x3 x4 x5 x6 x7@(Curry.Module.EventOracle.C_Node x8 x9 x10) st = Curry.Module.Prelude.op_62_62(Curry.Module.IOExts.c_writeIORef(x5)(Curry.Module.EventOracle.C_Collapsed)(st))(Curry.Module.Prelude.op_62_62(Curry.Module.IOExts.c_writeIORef(x2)(Curry.Module.EventOracle.C_Node(x4)(x3)(x6))(st))(Curry.Module.Prelude.op_36_33_33(Curry.Module.Prelude.pf(Curry.Module.IOExts.c_writeIORef(x6)))(Curry.Module.EventOracle.C_Node(x2)(Curry.Module.Prelude.op_43(x1)(x9)(st))(x10))(st))(st))(st)
+c_closeRef'46_'35lambda15'46_'35lambda17'46_'35lambda18 x1 x2 x3 x4 x5 x6 (Curry.Module.EventOracle.C_NodeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_closeRef'46_'35lambda15'46_'35lambda17'46_'35lambda18(x1)(x2)(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_closeRef'46_'35lambda15'46_'35lambda17'46_'35lambda18 x1 x2 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("EventOracle.closeRef._#lambda15._#lambda17._#lambda18")(x)
+
+
+
+c_expand :: (Curry t0) => (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.Prelude.List (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node)) -> t0 -> Curry.RunTimeSystem.State -> t0
+c_expand x1 x2 x3 st = Curry.Module.Unsafe.c_unsafePerformIO(Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_expand'46_'35lambda19(x1)(x2)(x3)))(st))(st)
+
+
+
+c_expand'46_'35lambda19 :: (Curry t175) => (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.Prelude.List (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node)) -> t175 -> Curry.Module.EventOracle.C_Node -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t175
+c_expand'46_'35lambda19 x1 x2 x3 x4 st = Curry.Module.Prelude.op_62_62(Curry.Module.EventOracle.c_expand'46_'35lambda19_case_1(x1)(x2)(x4)(st))(Curry.Module.Prelude.c_return(x3)(st))(st)
+
+
+
+c_expand'46_'35lambda19'46_'35lambda21 :: (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_expand'46_'35lambda19'46_'35lambda21 x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_expand'46_'35lambda19'46_'35lambda21'46_'35lambda22(x2)(x1)))(st)
+
+
+
+c_expand'46_'35lambda19'46_'35lambda21'46_'35lambda22 :: (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.Module.EventOracle.C_Node -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_expand'46_'35lambda19'46_'35lambda21'46_'35lambda22 x1 x2 x3@Curry.Module.EventOracle.C_Collapsed st = Curry.Module.EventOracle.c_warning((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))))))))(st)
+c_expand'46_'35lambda19'46_'35lambda21'46_'35lambda22 x1 x2 x3@(Curry.Module.EventOracle.C_Node x4 x5 x6) st = Curry.Module.IOExts.c_writeIORef(x2)(Curry.Module.EventOracle.C_Node(x1)(x5)(x6))(st)
+c_expand'46_'35lambda19'46_'35lambda21'46_'35lambda22 x1 x2 x3@Curry.Module.EventOracle.C_Marker st = Curry.Module.Prelude.c_done(st)
+c_expand'46_'35lambda19'46_'35lambda21'46_'35lambda22 x1 x2 (Curry.Module.EventOracle.C_NodeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_expand'46_'35lambda19'46_'35lambda21'46_'35lambda22(x1)(x2)(x)(st))(i)(xs)(st)
+c_expand'46_'35lambda19'46_'35lambda21'46_'35lambda22 x1 x2 x st = Curry.RunTimeSystem.patternFail("EventOracle.expand._#lambda19._#lambda21._#lambda22")(x)
+
+
+
+c_toAssocList :: Curry.Module.Prelude.C_Int -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.Prelude.List (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node)) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node)
+c_toAssocList x1 x2 x3@((Curry.Module.Prelude.:<) x5 x6) x4 st = Curry.Module.EventOracle.c_toAssocList_case_0(x1)(x2)(x4)(x5)(x6)(st)
+c_toAssocList x1 x2 (Curry.Module.Prelude.ListOr i xs) x4 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_toAssocList(x1)(x2)(x)(x4)(st))(i)(xs)(st)
+c_toAssocList x1 x2 x x4 st = Curry.RunTimeSystem.patternFail("EventOracle.toAssocList")(x)
+
+
+
+c_pointerToList :: (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_pointerToList x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_pointerToList'46_'35lambda24(x2)))(st)
+
+
+
+c_pointerToList'46_'35lambda24 :: (Curry.Module.IOExts.C_IORef Curry.Module.EventOracle.C_Node) -> Curry.Module.EventOracle.C_Node -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_pointerToList'46_'35lambda24 x1 x2@Curry.Module.EventOracle.C_Collapsed st = Curry.Module.Prelude.op_62_62(Curry.Module.EventOracle.c_warning((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))))(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.List)(st))(st)
+c_pointerToList'46_'35lambda24 x1 x2@(Curry.Module.EventOracle.C_Node x3 x4 x5) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.EventOracle.c_pointerToList(x5)(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_pointerToList'46_'35lambda24'46_'35lambda26(x4)))(st)
+c_pointerToList'46_'35lambda24 x1 x2@Curry.Module.EventOracle.C_Marker st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.List)(st)
+c_pointerToList'46_'35lambda24 x1 (Curry.Module.EventOracle.C_NodeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_pointerToList'46_'35lambda24(x1)(x)(st))(i)(xs)(st)
+c_pointerToList'46_'35lambda24 x1 x st = Curry.RunTimeSystem.patternFail("EventOracle.pointerToList._#lambda24")(x)
+
+
+
+c_pointerToList'46_'35lambda24'46_'35lambda26 :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_pointerToList'46_'35lambda24'46_'35lambda26 x1 x2 st = Curry.Module.Prelude.c_return((Curry.Module.Prelude.:<)(x1)(x2))(st)
+
+
+
+c_warning :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_warning x1 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_putStrLn))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('W'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('A'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('R'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('N'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('I'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('N'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('G'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))(x1)(st))(st)
+
+
+
+c_toAssocList_case_0 x1 x2 x4 x5 x6@Curry.Module.Prelude.List st = Curry.Module.Prelude.op_62_62(Curry.Module.IOExts.c_writeIORef(x5)(Curry.Module.EventOracle.C_Node(x2)(x1)(x4))(st))(Curry.Module.Prelude.c_return(x5)(st))(st)
+c_toAssocList_case_0 x1 x2 x4 x5 x6@((Curry.Module.Prelude.:<) x7 x8) st = Curry.Module.Prelude.op_62_62(Curry.Module.IOExts.c_writeIORef(x5)(Curry.Module.EventOracle.C_Node(x2)(x1)(x7))(st))(Curry.Module.EventOracle.c_toAssocList(Curry.Module.Prelude.C_Zero)(x5)(x6)(x4)(st))(st)
+c_toAssocList_case_0 x1 x2 x4 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_toAssocList_case_0(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_toAssocList_case_0 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("EventOracle.toAssocList_case_0")(x)
+
+
+
+c_expand'46_'35lambda19_case_1 x1 x2 x4@Curry.Module.EventOracle.C_Collapsed st = Curry.Module.EventOracle.c_warning((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))(st)
+c_expand'46_'35lambda19_case_1 x1 x2 x4@(Curry.Module.EventOracle.C_Node x5 x6 x7) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.op_36_33_33(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.EventOracle.c_toAssocList))(Curry.Module.Prelude.op_43(x6)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(x5)(st))((Curry.Module.Prelude.:<)(x1)(x2))(st))(x7)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_expand'46_'35lambda19'46_'35lambda21(x7)))(st)
+c_expand'46_'35lambda19_case_1 x1 x2 (Curry.Module.EventOracle.C_NodeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_expand'46_'35lambda19_case_1(x1)(x2)(x)(st))(i)(xs)(st)
+c_expand'46_'35lambda19_case_1 x1 x2 x st = Curry.RunTimeSystem.patternFail("EventOracle.expand._#lambda19_case_1")(x)
+
+
+
+c_closeRef'46_'35lambda15_case_2 x1 x3@Curry.Module.EventOracle.C_Collapsed st = Curry.Module.EventOracle.c_warning((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))(st)
+c_closeRef'46_'35lambda15_case_2 x1 x3@(Curry.Module.EventOracle.C_Node x4 x5 x6) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x4)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_closeRef'46_'35lambda15'46_'35lambda17(x5)(x4)(x1)(x6)))(st)
+c_closeRef'46_'35lambda15_case_2 x1 (Curry.Module.EventOracle.C_NodeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_closeRef'46_'35lambda15_case_2(x1)(x)(st))(i)(xs)(st)
+c_closeRef'46_'35lambda15_case_2 x1 x st = Curry.RunTimeSystem.patternFail("EventOracle.closeRef._#lambda15_case_2")(x)
+
+
+
+c_collapse'46_'35lambda11_case_3 x1 x3@Curry.Module.EventOracle.C_Collapsed st = Curry.Module.EventOracle.c_warning((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))(st)
+c_collapse'46_'35lambda11_case_3 x1 x3@(Curry.Module.EventOracle.C_Node x4 x5 x6) st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x4)(st))(Curry.Module.Prelude.pf(Curry.Module.EventOracle.c_collapse'46_'35lambda11'46_'35lambda13(x5)(x4)(x1)(x6)))(st)
+c_collapse'46_'35lambda11_case_3 x1 (Curry.Module.EventOracle.C_NodeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_collapse'46_'35lambda11_case_3(x1)(x)(st))(i)(xs)(st)
+c_collapse'46_'35lambda11_case_3 x1 x st = Curry.RunTimeSystem.patternFail("EventOracle.collapse._#lambda11_case_3")(x)
+
+
+
+c_replace'46_'35lambda9_case_4 x1 x3@Curry.Module.EventOracle.C_Collapsed st = Curry.Module.EventOracle.c_warning((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))(st)
+c_replace'46_'35lambda9_case_4 x1 x3@(Curry.Module.EventOracle.C_Node x4 x5 x6) st = Curry.Module.Prelude.op_36_33_33(Curry.Module.Prelude.pf(Curry.Module.IOExts.c_writeIORef(x1)))(Curry.Module.EventOracle.C_Node(x4)(Curry.Module.Prelude.op_43(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x6))(st)
+c_replace'46_'35lambda9_case_4 x1 (Curry.Module.EventOracle.C_NodeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.EventOracle.c_replace'46_'35lambda9_case_4(x1)(x)(st))(i)(xs)(st)
+c_replace'46_'35lambda9_case_4 x1 x st = Curry.RunTimeSystem.patternFail("EventOracle.replace._#lambda9_case_4")(x)
+
+
diff --git a/dist/build/Curry/Module/LiftCases.hs b/dist/build/Curry/Module/LiftCases.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/LiftCases.hs
@@ -0,0 +1,678 @@
+{-# OPTIONS -cpp #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.LiftCases (module Curry.Module.LiftCases) where
+
+import Curry.RunTimeSystem
+import Curry.Module.FiniteMap
+import Curry.Module.FlatCurry
+import Curry.Module.FlatCurryGoodies
+import Curry.Module.List
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_FuncList = (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl
+
+type C_Result = Curry.Module.Prelude.T3 (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl))
+
+c_isCaseAuxFuncName :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isCaseAuxFuncName x1 st = Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_take(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))(x1)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))(Curry.Module.Prelude.List)))))))(st)
+
+
+
+c_isCaseAuxFuncType :: Curry.Module.FlatCurry.C_TypeExpr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isCaseAuxFuncType x1 st = Curry.Module.Prelude.op_61_61(x1)(Curry.Module.FlatCurry.C_TVar(Curry.Module.Prelude.c_negate(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))(st)))(st)
+
+
+
+c_liftCases :: Curry.Module.Prelude.C_Bool -> Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Prog
+c_liftCases x1 x2 st = let {x3 = Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_progFuncs(st))(x2)(st)} in let {x5 = Curry.Module.List.c_partition(Curry.Module.FlatCurryGoodies.c_isExternal(st))(x3)(st)} in let {x8 = Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_liftCasesFunc(x1)(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_progName(st))(x2)(st))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_genAuxName(st))(Curry.Module.Prelude.c_map(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(Curry.Module.FlatCurryGoodies.c_funcName(st))(st))(x3)(st))(st))))(Curry.Module.Prelude.T3(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id)))(Curry.Module.LiftCases.c_liftCases'46_'35selFP7'35ins(x5)(st))(st)} in Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updProgFuncs(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_liftCases'46_'35selFP4'35newFsf(x8)(st))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_liftCases'46_'35selFP5'35auxFf(x8)(st))(Curry.Module.LiftCases.c_liftCases'46_'35selFP6'35exts(x5)(st))(st))(st))))(st))(x2)(st)
+
+
+
+c_liftCases'46_'35selFP6'35exts :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl
+c_liftCases'46_'35selFP6'35exts x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_liftCases'46_'35selFP6'35exts (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCases'46_'35selFP6'35exts(x)(st))(i)(xs)(st)
+c_liftCases'46_'35selFP6'35exts x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCases._#selFP6#exts")(x)
+
+
+
+c_liftCases'46_'35selFP7'35ins :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl
+c_liftCases'46_'35selFP7'35ins x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_liftCases'46_'35selFP7'35ins (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCases'46_'35selFP7'35ins(x)(st))(i)(xs)(st)
+c_liftCases'46_'35selFP7'35ins x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCases._#selFP7#ins")(x)
+
+
+
+c_liftCases'46_'35selFP4'35newFsf :: (Curry.Module.Prelude.T3 (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCases'46_'35selFP4'35newFsf x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = x2
+c_liftCases'46_'35selFP4'35newFsf (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCases'46_'35selFP4'35newFsf(x)(st))(i)(xs)(st)
+c_liftCases'46_'35selFP4'35newFsf x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCases._#selFP4#newFsf")(x)
+
+
+
+c_liftCases'46_'35selFP5'35auxFf :: (Curry.Module.Prelude.T3 (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCases'46_'35selFP5'35auxFf x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = x4
+c_liftCases'46_'35selFP5'35auxFf (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCases'46_'35selFP5'35auxFf(x)(st))(i)(xs)(st)
+c_liftCases'46_'35selFP5'35auxFf x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCases._#selFP5#auxFf")(x)
+
+
+
+c_liftCasesFunc :: Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.FlatCurry.C_FuncDecl -> (Curry.Module.Prelude.T3 (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl))
+c_liftCasesFunc x1 x2 x3 x4 x5@(Curry.Module.Prelude.T3 x6 x7 x8) st = let {x9 = Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_funcBody(st))(x4)(st)} in let {x10 = Curry.Module.Prelude.pf(Curry.Module.FlatCurryGoodies.c_trExpr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_liftCasesFunc'46var'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_liftCasesFunc'46lit'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618(x3)(x2)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618)))} in let {x11 = Curry.Module.LiftCases.c_liftCasesFunc_case_20(x7)(x9)(x10)(x1)(st)} in Curry.Module.Prelude.T3(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc((Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updFuncBody(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP61'35exp(x11)(st))))(st))(x4)(st))))(x6)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP62'35iMain(x11)(st))(Curry.Module.Prelude.op_46(x8)(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP63'35ffeMain(x11)(st))(st))
+c_liftCasesFunc x1 x2 x3 x4 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_liftCasesFunc x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc")(x)
+
+
+
+c_liftCasesFunc'46var'4618 :: (Curry t0,Curry t1) => Curry.Module.Prelude.C_Int -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_liftCasesFunc'46var'4618 x1 x2 st = Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Var(x1))(x2)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))((Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List))
+
+
+
+c_liftCasesFunc'46lit'4618 :: (Curry t0,Curry t1,Curry t2) => Curry.Module.FlatCurry.C_Literal -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2)
+c_liftCasesFunc'46lit'4618 x1 x2 st = Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Lit(x1))(x2)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.Prelude.List)
+
+
+
+c_liftCasesFunc'46comb'4618 :: (Curry t0,Curry t1,Curry t2) => Curry.Module.FlatCurry.C_CombType -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2)))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2)
+c_liftCasesFunc'46comb'4618 x1 x2 x3 x4 st = let {x5 = Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_fold(x4)(st))(x3)(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Comb(x1)(x2)(Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39(x5)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39(x5)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff(x5)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs(x5)(st))
+
+
+
+c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39 :: (Curry t149,Curry t156,Curry t157) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t149 (Curry.Module.Prelude.Prim (t156 -> Curry.RunTimeSystem.State -> t156)) (Curry.Module.Prelude.List t157)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.comb.18._#selFP10#args'")(x)
+
+
+
+c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39 :: (Curry t149,Curry t156,Curry t157) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t149 (Curry.Module.Prelude.Prim (t156 -> Curry.RunTimeSystem.State -> t156)) (Curry.Module.Prelude.List t157)) -> Curry.RunTimeSystem.State -> t149
+c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.comb.18._#selFP11#i'")(x)
+
+
+
+c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff :: (Curry t149,Curry t156,Curry t157) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t149 (Curry.Module.Prelude.Prim (t156 -> Curry.RunTimeSystem.State -> t156)) (Curry.Module.Prelude.List t157)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t156 -> Curry.RunTimeSystem.State -> t156)
+c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.comb.18._#selFP12#ff")(x)
+
+
+
+c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs :: (Curry t149,Curry t156,Curry t157) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t149 (Curry.Module.Prelude.Prim (t156 -> Curry.RunTimeSystem.State -> t156)) (Curry.Module.Prelude.List t157)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t157
+c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.comb.18._#selFP13#vs")(x)
+
+
+
+c_liftCasesFunc'46leT'4618 :: (Curry t0,Curry t1,Curry t2,Curry t3) => (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t2 (Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t2 (Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_liftCasesFunc'46leT'4618 x1 x2 x3 st = let {x4 = Curry.Module.Prelude.c_unzip(x1)(st)} in let {x5 = Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs(x4)(st)} in let {x7 = Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_fold(x3)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP26'35es(x4)(st))(st)} in let {x12 = Curry.Module.Prelude.c_apply(x2)(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39(x7)(st))(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Let(Curry.Module.Prelude.c_zip(x5)(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39(x7)(st))(st))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39(x12)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39(x12)(st))(Curry.Module.Prelude.op_46(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes(x7)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe(x12)(st))(st))(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_elemOf(st))(x5)(st))(st))(Curry.Module.Prelude.op_43_43(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves(x7)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve(x12)(st))(st))(st))
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (t161 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP25#vs")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP26'35es :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (t161 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (t161 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)))
+c_liftCasesFunc'46leT'4618'46_'35selFP26'35es x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_liftCasesFunc'46leT'4618'46_'35selFP26'35es (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP26'35es(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP26'35es x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP26#es")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39 :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP21#es'")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39 :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t161
+c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP22#i'")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)
+c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP23#ffes")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP24#ves")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39 :: (Curry t175,Curry t184,Curry t172) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t175 (Curry.Module.Prelude.Prim (t184 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP17#e'")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39 :: (Curry t175,Curry t184,Curry t172) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t175 (Curry.Module.Prelude.Prim (t184 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t175
+c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP18#i''")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe :: (Curry t175,Curry t184,Curry t172) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t175 (Curry.Module.Prelude.Prim (t184 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t184 -> Curry.RunTimeSystem.State -> t172)
+c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP19#ffe")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve :: (Curry t175,Curry t184,Curry t172) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t175 (Curry.Module.Prelude.Prim (t184 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP20#ve")(x)
+
+
+
+c_liftCasesFunc'46freE'4618 :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t1 t2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t1 t2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_liftCasesFunc'46freE'4618 x1 x2 x3 st = let {x4 = Curry.Module.Prelude.c_apply(x2)(x3)(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Free(x1)(Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39(x4)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39(x4)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff(x4)(st))(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_elemOf(st))(x1)(st))(st))(Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve(x4)(st))(st))
+
+
+
+c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39 :: (Curry t196,Curry t197) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t196 t197 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.freE.18._#selFP28#e'")(x)
+
+
+
+c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39 :: (Curry t196,Curry t197) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t196 t197 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t196
+c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.freE.18._#selFP29#i'")(x)
+
+
+
+c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff :: (Curry t196,Curry t197) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t196 t197 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t197
+c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.freE.18._#selFP30#ff")(x)
+
+
+
+c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve :: (Curry t196,Curry t197) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t196 t197 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.freE.18._#selFP31#ve")(x)
+
+
+
+c_liftCasesFunc'46or'4618 :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2)
+c_liftCasesFunc'46or'4618 x1 x2 x3 st = let {x4 = Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_fold(x3)(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Or(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39(x4)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39(x4)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39(x4)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff(x4)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs(x4)(st))
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39 :: (Curry t209,Curry t218,Curry t219) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t209 (Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)) (Curry.Module.Prelude.List t219)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_17(x2)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP33#e1'")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39 :: (Curry t209,Curry t218,Curry t219) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t209 (Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)) (Curry.Module.Prelude.List t219)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_14(x2)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP34#e2'")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39 :: (Curry t209,Curry t218,Curry t219) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t209 (Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)) (Curry.Module.Prelude.List t219)) -> Curry.RunTimeSystem.State -> t209
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_11(x3)(x2)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP35#i'")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff :: (Curry t209,Curry t218,Curry t219) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t209 (Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)) (Curry.Module.Prelude.List t219)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_8(x4)(x2)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP36#ff")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs :: (Curry t209,Curry t218,Curry t219) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t209 (Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)) (Curry.Module.Prelude.List t219)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t219
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_5(x5)(x2)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP37#vs")(x)
+
+
+
+c_liftCasesFunc'46casE'4618 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.FlatCurry.C_CaseType -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_BranchExpr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_liftCasesFunc'46casE'4618 x1 x2 x3 x4 x5 x6 st = let {x7 = Curry.Module.Prelude.c_apply(x4)(x6)(st)} in let {x8 = Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39(x7)(st)} in let {x12 = Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_fold(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39(x7)(st))(st))(x5)(st)} in let {x14 = Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39(x12)(st)} in let {x17 = Curry.Module.LiftCases.c_nub(Curry.Module.Prelude.op_43_43(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve(x7)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs(x12)(st))(st))(st)} in let {x18 = Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618_case_2(x17)(x8)(st)} in Curry.Module.Prelude.T4(Curry.Module.LiftCases.c_genFuncCall(x2)(x1)(x14)(x18)(x8)(st))(Curry.Module.Prelude.op_43(x14)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc((Curry.Module.Prelude.:<)(Curry.Module.LiftCases.c_genFunc(x2)(x1)(x14)(x18)(x8)(x3)(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39(x12)(st))(st))))(Curry.Module.Prelude.op_46(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe(x7)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs(x12)(st))(st))(st))(x17)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39 :: (Curry t238) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP44#e'")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39 :: (Curry t238) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP45#i'")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe :: (Curry t238) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP46#ffe")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve :: (Curry t238) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP47#ve")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39 :: (Curry t238) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> t238)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr
+c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP40#bs'")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39 :: (Curry t238) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> t238)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP41#i''")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs :: (Curry t238) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> t238)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> t238)
+c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP42#ffbs")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs :: (Curry t238) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> t238)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP43#vbs")(x)
+
+
+
+c_liftCasesFunc'46branch'4618 :: (Curry t0,Curry t1,Curry t2) => Curry.Module.FlatCurry.C_Pattern -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t1 t2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_BranchExpr t1 t2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_liftCasesFunc'46branch'4618 x1 x2 x3 st = let {x4 = Curry.Module.Prelude.c_apply(x2)(x3)(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Branch(x1)(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39(x4)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39(x4)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff(x4)(st))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_removePVars(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve(x4)(st))(st))(x1)(st))
+
+
+
+c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39 :: (Curry t260,Curry t261) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t260 t261 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.branch.18._#selFP49#e'")(x)
+
+
+
+c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39 :: (Curry t260,Curry t261) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t260 t261 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t260
+c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.branch.18._#selFP50#i'")(x)
+
+
+
+c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff :: (Curry t260,Curry t261) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t260 t261 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t261
+c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.branch.18._#selFP51#ff")(x)
+
+
+
+c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve :: (Curry t260,Curry t261) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t260 t261 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.branch.18._#selFP52#ve")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP58'35e'39 :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46_'35selFP58'35e'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46_'35selFP58'35e'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP58'35e'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP58'35e'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP58#e'")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP59'35i'39 :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46_'35selFP59'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46_'35selFP59'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP59'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP59'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP59#i'")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP60'35ffe :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCasesFunc'46_'35selFP60'35ffe x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46_'35selFP60'35ffe (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP60'35ffe(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP60'35ffe x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP60#ffe")(x)
+
+
+
+c_liftCasesFunc'46_'35lambda3 :: (Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)))) -> Curry.Module.FlatCurry.C_BranchExpr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_BranchExpr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))
+c_liftCasesFunc'46_'35lambda3 x1 x2@(Curry.Module.FlatCurry.C_Branch x3 x4) st = Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618(x3)(Curry.Module.Prelude.c_apply(x1)(x4)(st)))
+c_liftCasesFunc'46_'35lambda3 x1 (Curry.Module.FlatCurry.C_BranchExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35lambda3(x1)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35lambda3 x1 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#lambda3")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP55'35bs'39 :: (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr
+c_liftCasesFunc'46_'35selFP55'35bs'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46_'35selFP55'35bs'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP55'35bs'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP55'35bs'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP55#bs'")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP56'35i'39'39 :: (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46_'35selFP56'35i'39'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46_'35selFP56'35i'39'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP56'35i'39'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP56'35i'39'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP56#i''")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP57'35ffbs :: (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCasesFunc'46_'35selFP57'35ffbs x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46_'35selFP57'35ffbs (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP57'35ffbs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP57'35ffbs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP57#ffbs")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP61'35exp :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46_'35selFP61'35exp x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46_'35selFP61'35exp (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP61'35exp(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP61'35exp x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP61#exp")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP62'35iMain :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46_'35selFP62'35iMain x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46_'35selFP62'35iMain (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP62'35iMain(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP62'35iMain x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP62#iMain")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP63'35ffeMain :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCasesFunc'46_'35selFP63'35ffeMain x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46_'35selFP63'35ffeMain (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP63'35ffeMain(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP63'35ffeMain x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP63#ffeMain")(x)
+
+
+
+c_fold :: (Curry t0,Curry t1,Curry t2,Curry t3) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 t1 t0 (Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t2)) (Curry.Module.Prelude.List t3)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 (Curry.Module.Prelude.List t1) t0 (Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t2)) (Curry.Module.Prelude.List t3))
+c_fold x1 st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_fold'46once'4674))(Curry.Module.Prelude.T4(Curry.Module.Prelude.List)(x1)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.Prelude.List)))
+
+
+
+c_fold'46once'4674 :: (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5,Curry t6) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 t1 t2 (Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> t4)) (Curry.Module.Prelude.List t5))) -> (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List t1) t0 (Curry.Module.Prelude.Prim (t4 -> Curry.RunTimeSystem.State -> t6)) (Curry.Module.Prelude.List t5)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 (Curry.Module.Prelude.List t1) t2 (Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> t6)) (Curry.Module.Prelude.List t5)
+c_fold'46once'4674 x1 x2@(Curry.Module.Prelude.T4 x3 x4 x5 x6) st = let {x7 = Curry.Module.Prelude.c_apply(x1)(x4)(st)} in Curry.Module.Prelude.T4((Curry.Module.Prelude.:<)(Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP65'35e(x7)(st))(x3))(Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP66'35k(x7)(st))(Curry.Module.Prelude.op_46(x5)(Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP67'35ff2(x7)(st))(st))(Curry.Module.Prelude.op_43_43(x6)(Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP68'35vs2(x7)(st))(st))
+c_fold'46once'4674 x1 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_fold'46once'4674(x1)(x)(st))(i)(xs)(st)
+c_fold'46once'4674 x1 x st = Curry.RunTimeSystem.patternFail("LiftCases.fold.once.74")(x)
+
+
+
+c_fold'46once'4674'46_'35selFP65'35e :: (Curry t21,Curry t22,Curry t30,Curry t28,Curry t31) => (Curry.Module.Prelude.T4 t21 t22 (Curry.Module.Prelude.Prim (t30 -> Curry.RunTimeSystem.State -> t28)) (Curry.Module.Prelude.List t31)) -> Curry.RunTimeSystem.State -> t21
+c_fold'46once'4674'46_'35selFP65'35e x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_fold'46once'4674'46_'35selFP65'35e (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP65'35e(x)(st))(i)(xs)(st)
+c_fold'46once'4674'46_'35selFP65'35e x st = Curry.RunTimeSystem.patternFail("LiftCases.fold.once.74._#selFP65#e")(x)
+
+
+
+c_fold'46once'4674'46_'35selFP66'35k :: (Curry t21,Curry t22,Curry t30,Curry t28,Curry t31) => (Curry.Module.Prelude.T4 t21 t22 (Curry.Module.Prelude.Prim (t30 -> Curry.RunTimeSystem.State -> t28)) (Curry.Module.Prelude.List t31)) -> Curry.RunTimeSystem.State -> t22
+c_fold'46once'4674'46_'35selFP66'35k x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_fold'46once'4674'46_'35selFP66'35k (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP66'35k(x)(st))(i)(xs)(st)
+c_fold'46once'4674'46_'35selFP66'35k x st = Curry.RunTimeSystem.patternFail("LiftCases.fold.once.74._#selFP66#k")(x)
+
+
+
+c_fold'46once'4674'46_'35selFP67'35ff2 :: (Curry t21,Curry t22,Curry t30,Curry t28,Curry t31) => (Curry.Module.Prelude.T4 t21 t22 (Curry.Module.Prelude.Prim (t30 -> Curry.RunTimeSystem.State -> t28)) (Curry.Module.Prelude.List t31)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t30 -> Curry.RunTimeSystem.State -> t28)
+c_fold'46once'4674'46_'35selFP67'35ff2 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_fold'46once'4674'46_'35selFP67'35ff2 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP67'35ff2(x)(st))(i)(xs)(st)
+c_fold'46once'4674'46_'35selFP67'35ff2 x st = Curry.RunTimeSystem.patternFail("LiftCases.fold.once.74._#selFP67#ff2")(x)
+
+
+
+c_fold'46once'4674'46_'35selFP68'35vs2 :: (Curry t21,Curry t22,Curry t30,Curry t28,Curry t31) => (Curry.Module.Prelude.T4 t21 t22 (Curry.Module.Prelude.Prim (t30 -> Curry.RunTimeSystem.State -> t28)) (Curry.Module.Prelude.List t31)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t31
+c_fold'46once'4674'46_'35selFP68'35vs2 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_fold'46once'4674'46_'35selFP68'35vs2 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP68'35vs2(x)(st))(i)(xs)(st)
+c_fold'46once'4674'46_'35selFP68'35vs2 x st = Curry.RunTimeSystem.patternFail("LiftCases.fold.once.74._#selFP68#vs2")(x)
+
+
+
+c_genFuncCall :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_genFuncCall x1 x2 x3 x4 x5 st = Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_FuncCall)(Curry.Module.Prelude.T2(x1)(Curry.Module.Prelude.op_43_43(x2)(Curry.Module.Prelude.c_show(x3)(st))(st)))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Var))(x4)(st))((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.List))(st))
+
+
+
+c_genFunc :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.FlatCurry.C_Expr -> Curry.Module.FlatCurry.C_CaseType -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_FuncDecl
+c_genFunc x1 x2 x3 x4 x5 x6 x7 st = let {x8 = Curry.Module.LiftCases.c_genFunc_case_1(x4)(x7)(x5)(st)} in Curry.Module.Prelude.op_36(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Func(Curry.Module.Prelude.T2(x1)(Curry.Module.Prelude.op_43_43(x2)(Curry.Module.Prelude.c_show(x3)(st))(st)))(Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_length(x4)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.FlatCurry.C_Private)(Curry.Module.FlatCurry.C_TVar(Curry.Module.Prelude.c_negate(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))(st)))))(Curry.Module.FlatCurry.C_Rule(Curry.Module.Prelude.op_43_43(x4)((Curry.Module.Prelude.:<)(x8)(Curry.Module.Prelude.List))(st))(Curry.Module.FlatCurry.C_Case(x6)(Curry.Module.FlatCurry.C_Var(x8))(x7)))(st)
+
+
+
+c_genFunc'46allVarsBranch'4682 :: Curry.Module.FlatCurry.C_BranchExpr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_genFunc'46allVarsBranch'4682 x1@(Curry.Module.FlatCurry.C_Branch x2 x3) st = Curry.Module.Prelude.op_43_43(Curry.Module.FlatCurryGoodies.c_trPattern(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682'46_'35lambda6))(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682'46_'35lambda7))(x2)(st))(Curry.Module.FlatCurryGoodies.c_allVars(x3)(st))(st)
+c_genFunc'46allVarsBranch'4682 (Curry.Module.FlatCurry.C_BranchExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682(x)(st))(i)(xs)(st)
+c_genFunc'46allVarsBranch'4682 x st = Curry.RunTimeSystem.patternFail("LiftCases.genFunc.allVarsBranch.82")(x)
+
+
+
+c_genFunc'46allVarsBranch'4682'46_'35lambda6 :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_genFunc'46allVarsBranch'4682'46_'35lambda6 x1 x2 st = x2
+
+
+
+c_genFunc'46allVarsBranch'4682'46_'35lambda7 :: (Curry t262) => Curry.Module.FlatCurry.C_Literal -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t262
+c_genFunc'46allVarsBranch'4682'46_'35lambda7 x1 st = Curry.Module.Prelude.List
+
+
+
+c_removePVars :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Pattern -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_removePVars x1 st = Curry.Module.Prelude.pf(Curry.Module.FlatCurryGoodies.c_trPattern(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_removePVars'46_'35lambda8(x1)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(x1))))
+
+
+
+c_removePVars'46_'35lambda8 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_removePVars'46_'35lambda8 x1 x2 x3 st = Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_elemOf(st))(x3)(st))(st))(x1)(st)
+
+
+
+c_genAuxName :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_genAuxName st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_foldl(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_addUnderscores))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))(Curry.Module.Prelude.List))))))))
+
+
+
+c_addUnderscores :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_addUnderscores x1 x2 st = Curry.Module.LiftCases.c_addUnderscores_case_0(x1)(x2)(Curry.Module.List.c_isPrefixOf(x1)(x2)(st))(st)
+
+
+
+c_elemOf :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))
+c_elemOf st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_elem)))
+
+
+
+c_nub :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_nub x1 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_fst))))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_fmToList))(Curry.Module.Prelude.op_36(Curry.Module.FiniteMap.c_listToFM(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_60))(st))(Curry.Module.Prelude.c_zip(x1)(Curry.Module.Prelude.c_repeat(Curry.Module.Prelude.T0)(st))(st))(st))(st))(st)
+
+
+
+c_addUnderscores_case_0 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.LiftCases.c_addUnderscores(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))(Curry.Module.Prelude.List))(st))(x2)(st)
+c_addUnderscores_case_0 x1 x2 x3@Curry.Module.Prelude.C_False st = x1
+c_addUnderscores_case_0 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_addUnderscores_case_0(x1)(x2)(x)(st))(i)(xs)(st)
+c_addUnderscores_case_0 x1 x2 x st = Curry.RunTimeSystem.patternFail("LiftCases.addUnderscores_case_0")(x)
+
+
+
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Var x9) st = x9
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Lit x10) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Comb x11 x12 x13) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Let x14 x15) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Free x16 x17) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Or x18 x19) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Case x20 x21 x22) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 (Curry.Module.FlatCurry.C_ExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_genFunc_case_1(x4)(x7)(x)(st))(i)(xs)(st)
+c_genFunc_case_1 x4 x7 x st = Curry.RunTimeSystem.patternFail("LiftCases.genFunc_case_1")(x)
+
+
+
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Var x19) st = Curry.Module.List.c_delete(x19)(x17)(st)
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Lit x20) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Comb x21 x22 x23) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Let x24 x25) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Free x26 x27) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Or x28 x29) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Case x30 x31 x32) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 (Curry.Module.FlatCurry.C_ExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618_case_2(x17)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618_case_2 x17 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18_case_2")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_5 x5 x2@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_4(x5)(x7)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_5 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_5(x5)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_5 x5 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP37#vs_case_5")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_4 x5 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_3(x5)(x9)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_4 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_4(x5)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_4 x5 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP37#vs_case_4")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_3 x5 x9@Curry.Module.Prelude.List st = x5
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_3 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_3(x5)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_3 x5 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP37#vs_case_3")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_8 x4 x2@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_7(x4)(x7)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_8 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_8(x4)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_8 x4 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP36#ff_case_8")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_7 x4 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_6(x4)(x9)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_7 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_7(x4)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_7 x4 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP36#ff_case_7")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_6 x4 x9@Curry.Module.Prelude.List st = x4
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_6 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_6(x4)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_6 x4 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP36#ff_case_6")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_11 x3 x2@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_10(x3)(x7)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_11 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_11(x3)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_11 x3 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP35#i'_case_11")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_10 x3 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_9(x3)(x9)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_10 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_10(x3)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_10 x3 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP35#i'_case_10")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_9 x3 x9@Curry.Module.Prelude.List st = x3
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_9 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_9(x3)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_9 x3 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP35#i'_case_9")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_14 x2@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_13(x7)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_14 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_14(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_14 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP34#e2'_case_14")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_13 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_12(x8)(x9)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_13 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_13(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_13 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP34#e2'_case_13")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_12 x8 x9@Curry.Module.Prelude.List st = x8
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_12 x8 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_12(x8)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_12 x8 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP34#e2'_case_12")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_17 x2@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_16(x6)(x7)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_17 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_17(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_17 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP33#e1'_case_17")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_16 x6 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_15(x6)(x9)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_16 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_16(x6)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_16 x6 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP33#e1'_case_16")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_15 x6 x9@Curry.Module.Prelude.List st = x6
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_15 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_15(x6)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_15 x6 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP33#e1'_case_15")(x)
+
+
+
+c_liftCasesFunc_case_20 x7 x9 x10 x1@Curry.Module.Prelude.C_True st = Curry.Module.LiftCases.c_liftCasesFunc_case_19(x7)(x10)(x9)(st)
+c_liftCasesFunc_case_20 x7 x9 x10 x1@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_20 x7 x9 x10 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc_case_20(x7)(x9)(x10)(x)(st))(i)(xs)(st)
+c_liftCasesFunc_case_20 x7 x9 x10 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc_case_20")(x)
+
+
+
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Case x12 x13 x14) st = Curry.Module.LiftCases.c_liftCasesFunc_case_18(x7)(x9)(x10)(x12)(x14)(x13)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Var x37) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Lit x38) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Comb x39 x40 x41) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Let x42 x43) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Free x44 x45) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Or x46 x47) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 (Curry.Module.FlatCurry.C_ExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc_case_19(x7)(x10)(x)(st))(i)(xs)(st)
+c_liftCasesFunc_case_19 x7 x10 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc_case_19")(x)
+
+
+
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Var x15) st = let {x16 = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(Curry.Module.FlatCurry.C_Var(x15))(st))(x7)(st)} in let {x20 = Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_fold(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP59'35i'39(x16)(st))(st))(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_liftCasesFunc'46_'35lambda3(x10)))(x14)(st))(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Case(x12)(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP58'35e'39(x16)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP55'35bs'39(x20)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP56'35i'39'39(x20)(st))(Curry.Module.Prelude.op_46(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP60'35ffe(x16)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP57'35ffbs(x20)(st))(st))(Curry.Module.Prelude.List)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Lit x24) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Comb x25 x26 x27) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Let x28 x29) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Free x30 x31) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Or x32 x33) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Case x34 x35 x36) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 (Curry.Module.FlatCurry.C_ExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc_case_18(x7)(x9)(x10)(x12)(x14)(x)(st))(i)(xs)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc_case_18")(x)
+
+
diff --git a/dist/build/Curry/Module/Make.hs b/dist/build/Curry/Module/Make.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Make.hs
@@ -0,0 +1,463 @@
+{-# OPTIONS -cpp #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Make (module Curry.Module.Make) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Directory
+import Curry.Module.Distribution
+import Curry.Module.FileGoodies
+import Curry.Module.FiniteMap
+import Curry.Module.FlatCurry
+import Curry.Module.IOExts
+import Curry.Module.Prelude
+import Curry.Module.Sort
+import Curry.Module.System
+import Curry.Module.Time
+import Curry.Module.FlatCurryGoodies
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_ModuleName = Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+
+type C_Path = Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+
+type C_FileName = Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+
+type C_TestAct t0 = (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)
+
+type C_ProgAct t0 = (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List t0) -> Curry.Module.FlatCurry.C_Prog -> Curry.Module.Prelude.C_IO t0
+
+type C_Done t0 = Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t0)
+
+type C_Getter t0 = Curry.Module.Make.C_Parameter -> t0
+
+type C_Setter t0 = t0 -> Curry.Module.Make.C_Parameter -> Curry.Module.Make.C_Parameter
+
+data C_Parameter = C_Parameter Curry.Module.Prelude.C_Bool Curry.Module.Prelude.C_Bool (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+  | C_ParameterFail Curry.RunTimeSystem.C_Exceptions
+  | C_ParameterOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Make.C_Parameter)
+
+instance BaseCurry Curry.Module.Make.C_Parameter where
+  nf f (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> Curry.RunTimeSystem.nfCTC(\ v4 state4 -> Curry.RunTimeSystem.nfCTC(\ v5 state5 -> f(Curry.Module.Make.C_Parameter(v1)(v2)(v3)(v4)(v5))(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> Curry.RunTimeSystem.gnfCTC(\ v4 state4 -> Curry.RunTimeSystem.gnfCTC(\ v5 state5 -> f(Curry.Module.Make.C_Parameter(v1)(v2)(v3)(v4)(v5))(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Make.C_ParameterOr(Curry.RunTimeSystem.mkRef(r)(5)(i))([Curry.Module.Make.C_Parameter(Curry.RunTimeSystem.generator((Prelude.+)(r)((4::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((3::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(5)
+
+  failed  = Curry.Module.Make.C_ParameterFail
+
+  branching  = Curry.Module.Make.C_ParameterOr
+
+  consKind (Curry.Module.Make.C_ParameterOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Make.C_ParameterFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Make.C_ParameterFail x) = x
+
+  orRef (Curry.Module.Make.C_ParameterOr x _) = x
+
+  branches (Curry.Module.Make.C_ParameterOr _ x) = x
+
+
+
+
+
+instance Curry Curry.Module.Make.C_Parameter where
+  strEq (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) (Curry.Module.Make.C_Parameter y1 y2 y3 y4 y5) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x3)(y3)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x4)(y4)(st))(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) (Curry.Module.Make.C_Parameter y1 y2 y3 y4 y5) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x2)(y2)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x3)(y3)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x4)(y4)(st))(Curry.Module.Prelude.genEq(x5)(y5)(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) st = Curry.Module.Make.C_Parameter(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))(f((3::Int))(x4)(st))(f((4::Int))(x5)(st))
+
+  foldCurry f c (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(c)(st))(st))(st))(st))(st)
+
+  typeName _ = "Parameter"
+
+  showQ d (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Make.Parameter "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x3))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x4))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x5))))))))))
+
+
+  showQ _ (Curry.Module.Make.C_ParameterOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Make.C_Parameter where
+  showsPrec d (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Parameter "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x3))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x4))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x5))))))))))
+
+
+  showsPrec _ (Curry.Module.Make.C_ParameterOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Read Curry.Module.Make.C_Parameter where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Make.C_Parameter(x1)(x2)(x3)(x4)(x5))(r5) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Make")("Parameter")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1), ((,) x3 r3) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r2), ((,) x4 r4) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r3), ((,) x5 r5) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r4)])(r)
+
+
+
+
+
+c_defaults :: Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_defaults st = Curry.Module.Make.C_Parameter(Curry.Module.Prelude.C_False)(Curry.Module.Prelude.C_False)(Curry.Module.Prelude.C_Nothing)(Curry.Module.Prelude.C_Nothing)(Curry.Module.Prelude.List)
+
+
+
+c_quiet :: Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_quiet x1@(Curry.Module.Make.C_Parameter x2 x3 x4 x5 x6) st = x2
+c_quiet (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_quiet(x)(st))(i)(xs)(st)
+c_quiet x st = Curry.RunTimeSystem.patternFail("Make.quiet")(x)
+
+
+
+c_setQuiet :: Curry.Module.Prelude.C_Bool -> Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_setQuiet x1 x2@(Curry.Module.Make.C_Parameter x3 x4 x5 x6 x7) st = Curry.Module.Make.C_Parameter(x1)(x4)(x5)(x6)(x7)
+c_setQuiet x1 (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_setQuiet(x1)(x)(st))(i)(xs)(st)
+c_setQuiet x1 x st = Curry.RunTimeSystem.patternFail("Make.setQuiet")(x)
+
+
+
+c_force :: Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_force x1@(Curry.Module.Make.C_Parameter x2 x3 x4 x5 x6) st = x3
+c_force (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_force(x)(st))(i)(xs)(st)
+c_force x st = Curry.RunTimeSystem.patternFail("Make.force")(x)
+
+
+
+c_setForce :: Curry.Module.Prelude.C_Bool -> Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_setForce x1 x2@(Curry.Module.Make.C_Parameter x3 x4 x5 x6 x7) st = Curry.Module.Make.C_Parameter(x3)(x1)(x5)(x6)(x7)
+c_setForce x1 (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_setForce(x1)(x)(st))(i)(xs)(st)
+c_setForce x1 x st = Curry.RunTimeSystem.patternFail("Make.setForce")(x)
+
+
+
+c_output :: Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_output x1@(Curry.Module.Make.C_Parameter x2 x3 x4 x5 x6) st = x4
+c_output (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_output(x)(st))(i)(xs)(st)
+c_output x st = Curry.RunTimeSystem.patternFail("Make.output")(x)
+
+
+
+c_setOutput :: (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_setOutput x1 x2@(Curry.Module.Make.C_Parameter x3 x4 x5 x6 x7) st = Curry.Module.Make.C_Parameter(x3)(x4)(x1)(x6)(x7)
+c_setOutput x1 (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_setOutput(x1)(x)(st))(i)(xs)(st)
+c_setOutput x1 x st = Curry.RunTimeSystem.patternFail("Make.setOutput")(x)
+
+
+
+c_main :: Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_main x1@(Curry.Module.Make.C_Parameter x2 x3 x4 x5 x6) st = x5
+c_main (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_main(x)(st))(i)(xs)(st)
+c_main x st = Curry.RunTimeSystem.patternFail("Make.main")(x)
+
+
+
+c_setMain :: (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_setMain x1 x2@(Curry.Module.Make.C_Parameter x3 x4 x5 x6 x7) st = Curry.Module.Make.C_Parameter(x3)(x4)(x5)(x1)(x7)
+c_setMain x1 (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_setMain(x1)(x)(st))(i)(xs)(st)
+c_setMain x1 x st = Curry.RunTimeSystem.patternFail("Make.setMain")(x)
+
+
+
+c_modulename :: Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_modulename x1@(Curry.Module.Make.C_Parameter x2 x3 x4 x5 x6) st = x6
+c_modulename (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_modulename(x)(st))(i)(xs)(st)
+c_modulename x st = Curry.RunTimeSystem.patternFail("Make.modulename")(x)
+
+
+
+c_setModulename :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_setModulename x1 x2@(Curry.Module.Make.C_Parameter x3 x4 x5 x6 x7) st = Curry.Module.Make.C_Parameter(x3)(x4)(x5)(x6)(x1)
+c_setModulename x1 (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_setModulename(x1)(x)(st))(i)(xs)(st)
+c_setModulename x1 x st = Curry.RunTimeSystem.patternFail("Make.setModulename")(x)
+
+
+
+c_parseArgs :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Make.C_Parameter
+c_parseArgs st = Curry.Module.Prelude.op_62_62_61(Curry.Module.System.c_getArgs(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.pf(Curry.Module.Make.c_parseArgs'46parse'4650(Curry.Module.Prelude.c_error((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('<'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('>'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('<'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('q'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('q'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('>'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('<'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('>'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(st))(Curry.Module.Make.c_defaults(st))))(st))(st)
+
+
+
+c_parseArgs'46parse'4650 :: Curry.Module.Make.C_Parameter -> Curry.Module.Make.C_Parameter -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_parseArgs'46parse'4650 x1 x2 x3@Curry.Module.Prelude.List st = x1
+c_parseArgs'46parse'4650 x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Make.c_parseArgs'46parse'4650_case_15(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('q'))(Curry.Module.Prelude.List)))(st))(st)
+c_parseArgs'46parse'4650 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650(x1)(x2)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650 x1 x2 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50")(x)
+
+
+
+c_make :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0))))
+c_make st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.Make.c_makeWithFrontendParams(Curry.Module.Distribution.c_defaultParams(st)))
+
+
+
+c_makeWithFrontendParams :: (Curry t0) => Curry.Module.Distribution.C_FrontendParams -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_makeWithFrontendParams x1 x2 x3 x4 x5 st = let {x6 = Curry.Module.FileGoodies.c_splitDirectoryBaseName(x3)(st)} in Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_maybe(Curry.Module.Distribution.c_getLoadPath(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Distribution.c_fullPath(x1)(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4(x5)(Curry.Module.Make.c_makeWithFrontendParams'46_'35selFP3'35dir(x6)(st))(x1)(Curry.Module.Make.c_makeWithFrontendParams'46_'35selFP4'35modu(x6)(st))(x2)(x4)))(st)
+
+
+
+c_makeWithFrontendParams'46_'35selFP3'35dir :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_makeWithFrontendParams'46_'35selFP3'35dir x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_makeWithFrontendParams'46_'35selFP3'35dir (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_makeWithFrontendParams'46_'35selFP3'35dir(x)(st))(i)(xs)(st)
+c_makeWithFrontendParams'46_'35selFP3'35dir x st = Curry.RunTimeSystem.patternFail("Make.makeWithFrontendParams._#selFP3#dir")(x)
+
+
+
+c_makeWithFrontendParams'46_'35selFP4'35modu :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_makeWithFrontendParams'46_'35selFP4'35modu x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_makeWithFrontendParams'46_'35selFP4'35modu (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_makeWithFrontendParams'46_'35selFP4'35modu(x)(st))(i)(xs)(st)
+c_makeWithFrontendParams'46_'35selFP4'35modu x st = Curry.RunTimeSystem.patternFail("Make.makeWithFrontendParams._#selFP4#modu")(x)
+
+
+
+c_makeWithFrontendParams'46_'35lambda4 :: (Curry t209) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t209) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t209)))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Distribution.C_FrontendParams -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t209)))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_makeWithFrontendParams'46_'35lambda4 x1 x2 x3 x4 x5 x6 x7 st = let {x8 = Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4_case_6(x2)(x7)(Curry.Module.Prelude.op_61_61(x2)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List))(st))(st)} in Curry.Module.Prelude.op_62_62_61(Curry.Module.FileGoodies.c_lookupFileInPath(x4)((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List))))))))(Curry.Module.Prelude.List)))(x8)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5(x1)(x8)(x4)(Curry.Module.Distribution.c_setFullPath(x8)(x3)(st))(x5)(x6)))(st)
+
+
+
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5 :: (Curry t209) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t209) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t209)))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Distribution.C_FrontendParams -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t209)))) -> (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5 x1 x2 x3 x4 x5 x6 x7 st = Curry.Module.Prelude.op_62_62(Curry.Module.Make.c_unless(Curry.Module.Prelude.op_61_61(x7)(Curry.Module.Prelude.C_Nothing)(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Make.c_unless(x5)))(Curry.Module.Prelude.c_putStrLn((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))))(st))(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Distribution.c_callFrontendWithParams(Curry.Module.Distribution.C_FCY)(Curry.Module.Distribution.c_setQuiet(Curry.Module.Prelude.C_True)(x4)(st))(x3)(st))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Make.c_unless(x5)))(Curry.Module.Prelude.c_putStrLn((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))(Curry.Module.Prelude.List)))))))))))(st))(st))(st))(st))(st))(Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_newIORef(Curry.Module.FiniteMap.c_emptyFM(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda6))(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda7(x1)(x2)(x3)(x6)))(st))(st)
+
+
+
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda6 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda6 x1 x2 st = Curry.Module.Prelude.c_not(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Sort.c_leqString(st))(x1)(st))(x2)(st))(st)
+
+
+
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda7 :: (Curry t209) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t209) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t209)))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t209)))) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t209)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda7 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.op_62_62(Curry.Module.Make.c_workUpDependence(x2)(x5)(x4)(x1)(x3)(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.T0)(st))(st)
+
+
+
+c_workUpDependence :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t0)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_workUpDependence x1 x2 x3 x4 x5 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x2)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_workUpDependence'46_'35lambda8(x4)(x2)(x5)(x1)(x3)))(st)
+
+
+
+c_workUpDependence'46_'35lambda8 :: (Curry t141) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t141) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t141)))) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t141)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t141)))) -> (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t141) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t141
+c_workUpDependence'46_'35lambda8 x1 x2 x3 x4 x5 x6 st = Curry.Module.Prelude.c_maybe(Curry.Module.Make.c_process(x4)(x2)(x5)(x1)(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.FiniteMap.c_lookupFM(x6)(x3)(st))(st)
+
+
+
+c_process :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t0)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_process x1 x2 x3 x4 x5 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.FileGoodies.c_getFileInPath(Curry.Module.Prelude.op_43_43(x5)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.List)(Curry.Module.Prelude.List))(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_process'46_'35lambda9(x4)(x2)(x5)(x1)(x3)))(st)
+
+
+
+c_process'46_'35lambda9 :: (Curry t167) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t167) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t167)))) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t167)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t167)))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t167
+c_process'46_'35lambda9 x1 x2 x3 x4 x5 x6 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.op_62_62_61(Curry.Module.Make.c_fastReadImports(x6)(st))(Curry.Module.Prelude.c_mapIO(Curry.Module.Prelude.pf(Curry.Module.Make.c_workUpDependence(x4)(x2)(x5)(x1)))(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_process'46_'35lambda9'46_'35lambda10(x1)(x2)(x6)(x3)(x5)))(st)
+
+
+
+c_process'46_'35lambda9'46_'35lambda10 :: (Curry t167) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t167) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t167)))) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t167)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t167)))) -> (Curry.Module.Prelude.List t167) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t167
+c_process'46_'35lambda9'46_'35lambda10 x1 x2 x3 x4 x5 x6 st = let {x7 = Curry.Module.Prelude.op_43_43(Curry.Module.FileGoodies.c_dirName(x3)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))(Curry.Module.Prelude.List))(st)} in Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x5)(x7)(st))(x4)(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_maybe(Curry.Module.Prelude.op_62_62_61(Curry.Module.FlatCurry.c_readFlatCurryFile(x3)(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x7)(st))(x6)(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))))(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11(x2)(x4)))(st)
+
+
+
+c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11 :: (Curry t167) => (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t167)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t167 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t167
+c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11 x1 x2 x3 st = Curry.Module.Prelude.op_62_62(Curry.Module.Make.c_updateIORef(x1)(Curry.Module.Prelude.pf(Curry.Module.Make.c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11'46_'35lambda12(x2)(x3)))(st))(Curry.Module.Prelude.c_return(x3)(st))(st)
+
+
+
+c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11'46_'35lambda12 :: (Curry t167) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t167 -> (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t167) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t167
+c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11'46_'35lambda12 x1 x2 x3 st = Curry.Module.FiniteMap.c_addToFM(x3)(x1)(x2)(st)
+
+
+
+c_obsolete :: (Curry t0) => Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)
+c_obsolete x1 x2 x3 x4 x5 x6 st = let {x7 = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x5)(st))(x6)(st)} in Curry.Module.Prelude.op_62_62_61(Curry.Module.Directory.c_doesFileExist(x7)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46_'35lambda15(x4)(x7)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.op_43_43(x5)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_36))(x6)))(st))(x3)(st))(x1)))(st)
+
+
+
+c_obsolete'46isNewerThan'4686 :: Curry.Module.Time.C_ClockTime -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_obsolete'46isNewerThan'4686 x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Directory.c_doesFileExist(x2)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46isNewerThan'4686'46_'35lambda13(x2)(x1)))(st)
+
+
+
+c_obsolete'46isNewerThan'4686'46_'35lambda13 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Time.C_ClockTime -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_obsolete'46isNewerThan'4686'46_'35lambda13 x1 x2 x3 st = Curry.Module.Make.c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5(x1)(x2)(x3)(Curry.Module.Prelude.c_not(x3)(st))(st)
+
+
+
+c_obsolete'46isNewerThan'4686'46_'35lambda13'46_'35lambda14 :: Curry.Module.Time.C_ClockTime -> Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_obsolete'46isNewerThan'4686'46_'35lambda13'46_'35lambda14 x1 x2 st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.op_47_61(Curry.Module.Time.c_compareClockTime(x1)(x2)(st))(Curry.Module.Prelude.C_GT)(st))(st)
+
+
+
+c_obsolete'46_'35lambda15 :: (Curry t287) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t287)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Prelude.C_Bool -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t287)
+c_obsolete'46_'35lambda15 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Directory.c_getModificationTime(x2)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46_'35lambda15'46_'35lambda16(x1)(x2)(x3)(x4)))(st)
+c_obsolete'46_'35lambda15 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Make.c_unless(x4)))(Curry.Module.Prelude.c_putStrLn(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))(x2)(st))(st))(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.C_Nothing)(st))(st)
+c_obsolete'46_'35lambda15 x1 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_obsolete'46_'35lambda15(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_obsolete'46_'35lambda15 x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Make.obsolete._#lambda15")(x)
+
+
+
+c_obsolete'46_'35lambda15'46_'35lambda16 :: (Curry t287) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t287)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Prelude.C_Bool -> Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t287)
+c_obsolete'46_'35lambda15'46_'35lambda16 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_mapIO(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46isNewerThan'4686(x5)))(st))(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17(x1)(x2)(x3)(x4)))(st)
+
+
+
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17 :: (Curry t287) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t287)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Bool) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t287)
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17 x1 x2 x3 x4 x5 st = Curry.Module.Make.c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4(x1)(x2)(x3)(x4)(x5)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_or(st))(x5)(st))(st)
+
+
+
+c_fastReadImports :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_fastReadImports x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_readFile(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_fastReadImports'46_'35lambda18))(st)
+
+
+
+c_fastReadImports'46_'35lambda18 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_fastReadImports'46_'35lambda18 x1 st = Curry.Module.Prelude.c_return(Curry.Module.Make.c_strings(Curry.Module.Prelude.c_takeWhile(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_47_61))(Curry.Module.Prelude.C_Char(']'))))(Curry.Module.Prelude.c_dropWhile(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_47_61))(Curry.Module.Prelude.C_Char('['))))(x1)(st))(st))(st))(st)
+
+
+
+c_strings :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_strings x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_strings x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Make.c_strings_case_3(x2)(x3)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Char('\"'))(st))(st)
+c_strings (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_strings(x)(st))(i)(xs)(st)
+c_strings x st = Curry.RunTimeSystem.patternFail("Make.strings")(x)
+
+
+
+c_updateIORef :: (Curry t0) => (Curry.Module.IOExts.C_IORef t0) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_updateIORef x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_updateIORef'46_'35lambda20(x2)(x1)))(st)
+
+
+
+c_updateIORef'46_'35lambda20 :: (Curry t127) => (Curry.Module.Prelude.Prim (t127 -> Curry.RunTimeSystem.State -> t127)) -> (Curry.Module.IOExts.C_IORef t127) -> t127 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_updateIORef'46_'35lambda20 x1 x2 x3 st = Curry.Module.IOExts.c_writeIORef(x2)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+
+
+
+c_unless :: Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_unless x1@Curry.Module.Prelude.C_True x2 st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T0)(st)
+c_unless x1@Curry.Module.Prelude.C_False x2 st = x2
+c_unless (Curry.Module.Prelude.C_BoolOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_unless(x)(x2)(st))(i)(xs)(st)
+c_unless x x2 st = Curry.RunTimeSystem.patternFail("Make.unless")(x)
+
+
+
+c_strings_case_3 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_strings_case_2(x3)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_break(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_61_61))(Curry.Module.Prelude.C_Char('\"'))))(st))(x3)(st))(st)
+c_strings_case_3 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_strings_case_0(x3)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_strings_case_3 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_strings_case_3(x2)(x3)(x)(st))(i)(xs)(st)
+c_strings_case_3 x2 x3 x st = Curry.RunTimeSystem.patternFail("Make.strings_case_3")(x)
+
+
+
+c_strings_case_0 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_strings(x3)(st)
+c_strings_case_0 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_strings_case_0(x3)(x)(st))(i)(xs)(st)
+c_strings_case_0 x3 x st = Curry.RunTimeSystem.patternFail("Make.strings_case_0")(x)
+
+
+
+c_strings_case_2 x3 (Curry.Module.Prelude.T2 x4 x5) st = Curry.Module.Make.c_strings_case_1(x4)(x5)(st)
+c_strings_case_2 x3 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_strings_case_2(x3)(x)(st))(i)(xs)(st)
+c_strings_case_2 x3 x st = Curry.RunTimeSystem.patternFail("Make.strings_case_2")(x)
+
+
+
+c_strings_case_1 x4 x5@((Curry.Module.Prelude.:<) x6 x7) st = (Curry.Module.Prelude.:<)(x4)(Curry.Module.Make.c_strings(x7)(st))
+c_strings_case_1 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_strings_case_1(x4)(x)(st))(i)(xs)(st)
+c_strings_case_1 x4 x st = Curry.RunTimeSystem.patternFail("Make.strings_case_1")(x)
+
+
+
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4 x1 x2 x3 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Make.c_unless(x4)))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_putStrLn))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))(x2)(st))(st))(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.C_Nothing)(st))(st)
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4 x1 x2 x3 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Make.c_unless(x4)))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_putStrLn))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))(x2)(st))(st))(st))(Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_apply(x1)(x3)(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.pc(Curry.Module.Prelude.C_Just))(st))(st))(st)
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4 x1 x2 x3 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4(x1)(x2)(x3)(x4)(x5)(x)(st))(i)(xs)(st)
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4 x1 x2 x3 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.obsolete._#lambda15._#lambda16._#lambda17_case_4")(x)
+
+
+
+c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.C_False)(st)
+c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Directory.c_getModificationTime(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46isNewerThan'4686'46_'35lambda13'46_'35lambda14(x2)))(st)
+c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Make.obsolete.isNewerThan.86._#lambda13_case_5")(x)
+
+
+
+c_makeWithFrontendParams'46_'35lambda4_case_6 x2 x7 x8@Curry.Module.Prelude.C_True st = x7
+c_makeWithFrontendParams'46_'35lambda4_case_6 x2 x7 x8@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(x2)(x7)
+c_makeWithFrontendParams'46_'35lambda4_case_6 x2 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4_case_6(x2)(x7)(x)(st))(i)(xs)(st)
+c_makeWithFrontendParams'46_'35lambda4_case_6 x2 x7 x st = Curry.RunTimeSystem.patternFail("Make.makeWithFrontendParams._#lambda4_case_6")(x)
+
+
+
+c_parseArgs'46parse'4650_case_15 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setQuiet(Curry.Module.Prelude.C_True)(x2)(st))(x5)(st)
+c_parseArgs'46parse'4650_case_15 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_14(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('q'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List))))))))(st))(st)
+c_parseArgs'46parse'4650_case_15 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_15(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_15 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_15")(x)
+
+
+
+c_parseArgs'46parse'4650_case_14 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setQuiet(Curry.Module.Prelude.C_True)(x2)(st))(x5)(st)
+c_parseArgs'46parse'4650_case_14 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_13(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))(Curry.Module.Prelude.List)))(st))(st)
+c_parseArgs'46parse'4650_case_14 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_14(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_14 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_14")(x)
+
+
+
+c_parseArgs'46parse'4650_case_13 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setForce(Curry.Module.Prelude.C_True)(x2)(st))(x5)(st)
+c_parseArgs'46parse'4650_case_13 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_12(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))(st))(st)
+c_parseArgs'46parse'4650_case_13 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_13(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_13 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_13")(x)
+
+
+
+c_parseArgs'46parse'4650_case_12 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setForce(Curry.Module.Prelude.C_True)(x2)(st))(x5)(st)
+c_parseArgs'46parse'4650_case_12 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_11(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))(Curry.Module.Prelude.List)))(st))(st)
+c_parseArgs'46parse'4650_case_12 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_12(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_12 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_12")(x)
+
+
+
+c_parseArgs'46parse'4650_case_11 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650_case_10(x1)(x2)(x5)(st)
+c_parseArgs'46parse'4650_case_11 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_9(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))(Curry.Module.Prelude.List)))(st))(st)
+c_parseArgs'46parse'4650_case_11 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_11(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_11 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_11")(x)
+
+
+
+c_parseArgs'46parse'4650_case_9 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650_case_8(x1)(x2)(x5)(st)
+c_parseArgs'46parse'4650_case_9 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_7(x2)(x4)(x5)(Curry.Module.Prelude.c_null(x5)(st))(st)
+c_parseArgs'46parse'4650_case_9 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_9(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_9 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_9")(x)
+
+
+
+c_parseArgs'46parse'4650_case_7 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_setModulename(x4)(x2)(st)
+c_parseArgs'46parse'4650_case_7 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_7(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_7 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_7")(x)
+
+
+
+c_parseArgs'46parse'4650_case_8 x1 x2 x5@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setMain(Curry.Module.Prelude.C_Just(x8))(x2)(st))(x9)(st)
+c_parseArgs'46parse'4650_case_8 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_8(x1)(x2)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_8 x1 x2 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_8")(x)
+
+
+
+c_parseArgs'46parse'4650_case_10 x1 x2 x5@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setOutput(Curry.Module.Prelude.C_Just(x6))(x2)(st))(x7)(st)
+c_parseArgs'46parse'4650_case_10 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_10(x1)(x2)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_10 x1 x2 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_10")(x)
+
+
diff --git a/dist/build/Curry/Module/Oracle.hs b/dist/build/Curry/Module/Oracle.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/Curry/Module/Oracle.hs
@@ -0,0 +1,149 @@
+{-# OPTIONS -cpp #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Oracle (module Curry.Module.Oracle) where
+
+import Curry.RunTimeSystem
+import Curry.Module.CEventOracle
+import Curry.Module.IOExts
+import Curry.Module.Prelude
+import Curry.Module.Unsafe
+import Curry.Module.Meta
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_partCons :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> Curry.Module.CEventOracle.C_Ref -> t0 -> Curry.RunTimeSystem.State -> t1
+c_partCons x1 x2 x3 st = Curry.Module.CEventOracle.c_closeRef(x2)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+
+
+
+c_partFunc :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t1))) -> Curry.Module.CEventOracle.C_Ref -> t0 -> Curry.RunTimeSystem.State -> t1
+c_partFunc x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x2)(st)
+
+
+
+c_partCall :: (Curry t0) => t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t0
+c_partCall x1 x2 st = Curry.Module.CEventOracle.c_closeRef(x2)(x1)(st)
+
+
+
+c_apply :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1))) -> t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t1
+c_apply x1 x2 x3 st = Curry.Module.CEventOracle.c_apply(x1)(x2)(x3)(st)
+
+
+
+op_36_33 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1))) -> t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t1
+op_36_33 x1 x2 x3 st = Curry.Module.CEventOracle.op_36_33(x1)(x2)(x3)(st)
+
+
+
+op_36_33_33 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1))) -> t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t1
+op_36_33_33 x1 x2 x3 st = Curry.Module.CEventOracle.op_36_33_33(x1)(x2)(x3)(st)
+
+
+
+op_36_35 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1))) -> t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t1
+op_36_35 x1 x2 x3 st = Curry.Module.CEventOracle.op_36_35(x1)(x2)(x3)(st)
+
+
+
+op_36_35_35 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1))) -> t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t1
+op_36_35_35 x1 x2 x3 st = Curry.Module.CEventOracle.op_36_35_35(x1)(x2)(x3)(st)
+
+
+
+c_headNormalFormIO :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1))))) -> t0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1))
+c_headNormalFormIO x1 x2 x3 st = Curry.Module.Prelude.c_error((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('N'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('F'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('I'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))(Curry.Module.Prelude.List)))))))))))))))))(st)
+
+
+
+c_prim_unsafePerformIO :: (Curry t0) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0))) -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t0
+c_prim_unsafePerformIO x1 x2 st = Curry.Module.CEventOracle.c_replace(x2)(Curry.Module.Unsafe.c_unsafePerformIO(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x2)(st))(Curry.Module.Prelude.T0)(st))(st))(st)
+
+
+
+c_lambda_world :: (Curry t0) => (Curry.Module.Prelude.C_IO t0) -> Curry.Module.CEventOracle.C_Ref -> Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_lambda_world x1 x2 x3 st = Curry.Module.CEventOracle.c_collapse(x2)(x1)(st)
+
+
+
+op_62_62_61 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0))) -> (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1))))) -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1))
+op_62_62_61 x1 x2 x3 st = Curry.Module.CEventOracle.c_collapse(x3)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Oracle.c_partFunc(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Oracle.c_bind(x1)(x2)))))(st)
+
+
+
+c_bind :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0))) -> (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1))))) -> Curry.Module.Prelude.T0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1
+c_bind x1 x2 x3 x4 st = let {x5 = Curry.Module.CEventOracle.c_fresh(Curry.Module.Prelude.T0)(st)} in Curry.Module.CEventOracle.c_expand(x4)((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_62_62_61(Curry.Module.Oracle.c_apply(x1)(x3)(x4)(st))(Curry.Module.Prelude.pf(Curry.Module.Oracle.c_bind2(x2)(x3)(x5)))(st))(st)
+
+
+
+c_bind2 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1))))) -> Curry.Module.Prelude.T0 -> Curry.Module.CEventOracle.C_Ref -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t1
+c_bind2 x1 x2 x3 x4 st = let {x5 = Curry.Module.CEventOracle.c_fresh(Curry.Module.Prelude.T0)(st)} in Curry.Module.CEventOracle.c_expand(x3)((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.List))(Curry.Module.Oracle.c_apply(Curry.Module.Oracle.c_apply(x1)(x4)(x3)(st))(x2)(x5)(st))(st)
+
+
+
+c_catchFail :: (Curry t0) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0))) -> (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0))) -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0))
+c_catchFail x1 x2 x3 st = Curry.Module.CEventOracle.c_collapse(x3)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Oracle.c_partFunc(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Oracle.c_catch(x1)(x2)))))(st)
+
+
+
+c_catch :: (Curry t0) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0))) -> (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0))) -> Curry.Module.Prelude.T0 -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_catch x1 x2 x3 x4 st = let {x5 = Curry.Module.CEventOracle.c_fresh(Curry.Module.Prelude.T0)(st)} in Curry.Module.CEventOracle.c_expand(x4)((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.List))(Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_catchFail(Curry.Module.Prelude.op_62_62_61(Curry.Module.Oracle.c_apply(x1)(x3)(x4)(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.pc(Curry.Module.Prelude.T2(Curry.Module.Prelude.C_True)))(st))(st))(Curry.Module.Prelude.op_62_62_61(Curry.Module.Oracle.c_apply(x2)(x3)(x5)(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.pc(Curry.Module.Prelude.T2(Curry.Module.Prelude.C_False)))(st))(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Oracle.c_catch'46_'35lambda2))(st))(st)
+
+
+
+c_catch'46_'35lambda2 :: (Curry t162) => (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Bool t162) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t162
+c_catch'46_'35lambda2 x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.Prelude.op_62_62(Curry.Module.Oracle.c_safeIOResult(Curry.Module.Prelude.c_return(x2)(st))(st))(Curry.Module.Prelude.c_return(x3)(st))(st)
+c_catch'46_'35lambda2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Oracle.c_catch'46_'35lambda2(x)(st))(i)(xs)(st)
+c_catch'46_'35lambda2 x st = Curry.RunTimeSystem.patternFail("Oracle.catch._#lambda2")(x)
+
+
+
+c_compose :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t1)) -> (Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t0)) -> t2 -> Curry.RunTimeSystem.State -> t1
+c_compose x1 x2 x3 st = Curry.Module.Prelude.c_apply(x1)(Curry.Module.Prelude.c_apply(x2)(x3)(st))(st)
+
+
+
+c_oracle :: (Curry t0) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_oracle x1 st = Curry.Module.CEventOracle.c_initialize(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(x1)(st))(st)
+
+
+
+c_oracleIO :: (Curry t0) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_oracleIO x1 st = Curry.Module.CEventOracle.c_initialize(Curry.Module.Prelude.pf(Curry.Module.Oracle.c_oracleIO'46_'35lambda3(x1)))(st)
+
+
+
+c_oracleIO'46_'35lambda3 :: (Curry t195) => (Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.T0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t195)))) -> Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t195
+c_oracleIO'46_'35lambda3 x1 x2 st = let {x3 = Curry.Module.CEventOracle.c_fresh(Curry.Module.Prelude.T0)(st)} in Curry.Module.CEventOracle.c_expand(x2)((Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.List))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x2)(st))(x3)(st))(Curry.Module.Prelude.T0)(st))(st)
+
+
+
+c_safeIOResult :: (Curry t0) => (Curry.Module.Prelude.C_IO t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_safeIOResult x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_getAssoc((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))(Curry.Module.Prelude.List))))))(st))(Curry.Module.Prelude.pf(Curry.Module.Oracle.c_safeIOResult'46_'35lambda4(x1)))(st)
+
+
+
+c_safeIOResult'46_'35lambda4 :: (Curry t120) => (Curry.Module.Prelude.C_IO t120) -> (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t120
+c_safeIOResult'46_'35lambda4 x1 x2@(Curry.Module.Prelude.C_Just x3) st = Curry.Module.Prelude.op_62_62_61(x1)(Curry.Module.Prelude.pf(Curry.Module.Oracle.c_safeIOResult'46_'35lambda4'46_'35lambda5(x3)))(st)
+c_safeIOResult'46_'35lambda4 x1 (Curry.Module.Prelude.C_MaybeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Oracle.c_safeIOResult'46_'35lambda4(x1)(x)(st))(i)(xs)(st)
+c_safeIOResult'46_'35lambda4 x1 x st = Curry.RunTimeSystem.patternFail("Oracle.safeIOResult._#lambda4")(x)
+
+
+
+c_safeIOResult'46_'35lambda4'46_'35lambda5 :: (Curry t120) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t120 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t120
+c_safeIOResult'46_'35lambda4'46_'35lambda5 x1 x2 st = let {x3 = Curry.Module.Prelude.c_show(x2)(st)} in Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_appendFile(x1)(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_show(Curry.Module.Prelude.c_length(x3)(st))(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))(x3))(st))(st))(Curry.Module.Prelude.c_return(x2)(st))(st)
+
+
+
+c_unknown :: (Curry t0) => Curry.Module.CEventOracle.C_Ref -> Curry.RunTimeSystem.State -> t0
+c_unknown x1 st = Curry.Module.CEventOracle.c_unknown(x1)(st)
+
+
diff --git a/dist/build/prophecy/prophecy-tmp/Curry/Module/AddWorld.hs b/dist/build/prophecy/prophecy-tmp/Curry/Module/AddWorld.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/prophecy/prophecy-tmp/Curry/Module/AddWorld.hs
@@ -0,0 +1,91 @@
+{-# OPTIONS -cpp #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.AddWorld (module Curry.Module.AddWorld) where
+
+import Curry.RunTimeSystem
+import Curry.Module.FlatCurry
+import Curry.Module.FlatCurryGoodies
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_main :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_main st = Curry.Module.Prelude.op_62_62_61(Curry.Module.FlatCurry.c_readFlatCurry((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('P'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_writeFile((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('P'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List))))))))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_show))(Curry.Module.AddWorld.c_addWorld(st))(st))(st))(st)
+
+
+
+c_addWorld :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Prog)
+c_addWorld st = Curry.Module.Prelude.op_46(Curry.Module.FlatCurryGoodies.c_updProgTypes(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.FlatCurryGoodies.c_updTypeConsDecls(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updConsArgs(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.AddWorld.c_addWorldTE(st))))(st))))(st))))(st))(Curry.Module.Prelude.op_46(Curry.Module.FlatCurryGoodies.c_updProgTypes(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updTypeSynonym(st))(Curry.Module.AddWorld.c_addWorldTE(st))(st))))(st))(Curry.Module.FlatCurryGoodies.c_updProgFuncs(Curry.Module.AddWorld.c_addWorldFuncs(st))(st))(st))(st)
+
+
+
+c_addWorldTE :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_TypeExpr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_TypeExpr)
+c_addWorldTE st = Curry.Module.Prelude.pf(Curry.Module.FlatCurryGoodies.c_trTypeExpr(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_TVar))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.AddWorld.c_addWorldTE'46addWorldToIO'467))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pc))(Curry.Module.FlatCurry.C_FuncType)))
+
+
+
+c_addWorldTE'46addWorldToIO'467 :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeExpr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_TypeExpr
+c_addWorldTE'46addWorldToIO'467 x1 x2 st = Curry.Module.AddWorld.c_addWorldTE'46addWorldToIO'467_case_3(x1)(x2)(Curry.Module.AddWorld.c_isIO(x1)(st))(st)
+
+
+
+c_prelude :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_prelude st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('P'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))
+
+
+
+c_isIO :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isIO x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_61_61(x3)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('I'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))(Curry.Module.Prelude.List)))(st))(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.AddWorld.c_prelude(st))(st))(st)
+c_isIO (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.AddWorld.c_isIO(x)(st))(i)(xs)(st)
+c_isIO x st = Curry.RunTimeSystem.patternFail("AddWorld.isIO")(x)
+
+
+
+c_unit :: Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_TypeExpr
+c_unit st = Curry.Module.FlatCurry.C_TCons(Curry.Module.Prelude.T2(Curry.Module.AddWorld.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('('))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(')'))(Curry.Module.Prelude.List))))(Curry.Module.Prelude.List)
+
+
+
+c_addWorldFuncs :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_addWorldFuncs st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.FlatCurryGoodies.c_updFuncType(Curry.Module.AddWorld.c_addWorldTE(st))(st))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.AddWorld.c_changeExtIOFunc))))(st)
+
+
+
+c_changeExtIOFunc :: Curry.Module.FlatCurry.C_FuncDecl -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_FuncDecl
+c_changeExtIOFunc x1 st = let {x2 = Curry.Module.FlatCurryGoodies.c_resultType(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_funcType(st))(x1)(st))(st)} in Curry.Module.AddWorld.c_changeExtIOFunc_case_1(x1)(x2)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_isExternal(st))(x1)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_isTCons(st))(x2)(st))(Curry.Module.AddWorld.c_isIO(Curry.Module.FlatCurryGoodies.c_tConsName(x2)(st))(st))(st))(st))(st)
+
+
+
+c_changeExtIOFunc_case_1 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updFuncArity(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_43))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))))(st))(x1)(st)
+c_changeExtIOFunc_case_1 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.AddWorld.c_changeExtIOFunc_case_0(x1)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_changeExtIOFunc_case_1 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.AddWorld.c_changeExtIOFunc_case_1(x1)(x2)(x)(st))(i)(xs)(st)
+c_changeExtIOFunc_case_1 x1 x2 x st = Curry.RunTimeSystem.patternFail("AddWorld.changeExtIOFunc_case_1")(x)
+
+
+
+c_changeExtIOFunc_case_0 x1 x2@Curry.Module.Prelude.C_True st = x1
+c_changeExtIOFunc_case_0 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.AddWorld.c_changeExtIOFunc_case_0(x1)(x)(st))(i)(xs)(st)
+c_changeExtIOFunc_case_0 x1 x st = Curry.RunTimeSystem.patternFail("AddWorld.changeExtIOFunc_case_0")(x)
+
+
+
+c_addWorldTE'46addWorldToIO'467_case_3 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.FlatCurry.C_FuncType(Curry.Module.AddWorld.c_unit(st))(Curry.Module.FlatCurry.C_TCons(x1)(x2))
+c_addWorldTE'46addWorldToIO'467_case_3 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.AddWorld.c_addWorldTE'46addWorldToIO'467_case_2(x1)(x2)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_addWorldTE'46addWorldToIO'467_case_3 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.AddWorld.c_addWorldTE'46addWorldToIO'467_case_3(x1)(x2)(x)(st))(i)(xs)(st)
+c_addWorldTE'46addWorldToIO'467_case_3 x1 x2 x st = Curry.RunTimeSystem.patternFail("AddWorld.addWorldTE.addWorldToIO.7_case_3")(x)
+
+
+
+c_addWorldTE'46addWorldToIO'467_case_2 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.FlatCurry.C_TCons(x1)(x2)
+c_addWorldTE'46addWorldToIO'467_case_2 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.AddWorld.c_addWorldTE'46addWorldToIO'467_case_2(x1)(x2)(x)(st))(i)(xs)(st)
+c_addWorldTE'46addWorldToIO'467_case_2 x1 x2 x st = Curry.RunTimeSystem.patternFail("AddWorld.addWorldTE.addWorldToIO.7_case_2")(x)
+
+
diff --git a/dist/build/prophecy/prophecy-tmp/Curry/Module/LiftCases.hs b/dist/build/prophecy/prophecy-tmp/Curry/Module/LiftCases.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/prophecy/prophecy-tmp/Curry/Module/LiftCases.hs
@@ -0,0 +1,678 @@
+{-# OPTIONS -cpp #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.LiftCases (module Curry.Module.LiftCases) where
+
+import Curry.RunTimeSystem
+import Curry.Module.FiniteMap
+import Curry.Module.FlatCurry
+import Curry.Module.FlatCurryGoodies
+import Curry.Module.List
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_FuncList = (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl
+
+type C_Result = Curry.Module.Prelude.T3 (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl))
+
+c_isCaseAuxFuncName :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isCaseAuxFuncName x1 st = Curry.Module.Prelude.op_61_61(Curry.Module.Prelude.c_take(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))))(x1)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))(Curry.Module.Prelude.List)))))))(st)
+
+
+
+c_isCaseAuxFuncType :: Curry.Module.FlatCurry.C_TypeExpr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_isCaseAuxFuncType x1 st = Curry.Module.Prelude.op_61_61(x1)(Curry.Module.FlatCurry.C_TVar(Curry.Module.Prelude.c_negate(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))(st)))(st)
+
+
+
+c_liftCases :: Curry.Module.Prelude.C_Bool -> Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Prog
+c_liftCases x1 x2 st = let {x3 = Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_progFuncs(st))(x2)(st)} in let {x5 = Curry.Module.List.c_partition(Curry.Module.FlatCurryGoodies.c_isExternal(st))(x3)(st)} in let {x8 = Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_liftCasesFunc(x1)(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_progName(st))(x2)(st))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_genAuxName(st))(Curry.Module.Prelude.c_map(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(Curry.Module.FlatCurryGoodies.c_funcName(st))(st))(x3)(st))(st))))(Curry.Module.Prelude.T3(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id)))(Curry.Module.LiftCases.c_liftCases'46_'35selFP7'35ins(x5)(st))(st)} in Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updProgFuncs(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_liftCases'46_'35selFP4'35newFsf(x8)(st))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_liftCases'46_'35selFP5'35auxFf(x8)(st))(Curry.Module.LiftCases.c_liftCases'46_'35selFP6'35exts(x5)(st))(st))(st))))(st))(x2)(st)
+
+
+
+c_liftCases'46_'35selFP6'35exts :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl
+c_liftCases'46_'35selFP6'35exts x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_liftCases'46_'35selFP6'35exts (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCases'46_'35selFP6'35exts(x)(st))(i)(xs)(st)
+c_liftCases'46_'35selFP6'35exts x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCases._#selFP6#exts")(x)
+
+
+
+c_liftCases'46_'35selFP7'35ins :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl
+c_liftCases'46_'35selFP7'35ins x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_liftCases'46_'35selFP7'35ins (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCases'46_'35selFP7'35ins(x)(st))(i)(xs)(st)
+c_liftCases'46_'35selFP7'35ins x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCases._#selFP7#ins")(x)
+
+
+
+c_liftCases'46_'35selFP4'35newFsf :: (Curry.Module.Prelude.T3 (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCases'46_'35selFP4'35newFsf x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = x2
+c_liftCases'46_'35selFP4'35newFsf (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCases'46_'35selFP4'35newFsf(x)(st))(i)(xs)(st)
+c_liftCases'46_'35selFP4'35newFsf x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCases._#selFP4#newFsf")(x)
+
+
+
+c_liftCases'46_'35selFP5'35auxFf :: (Curry.Module.Prelude.T3 (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCases'46_'35selFP5'35auxFf x1@(Curry.Module.Prelude.T3 x2 x3 x4) st = x4
+c_liftCases'46_'35selFP5'35auxFf (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCases'46_'35selFP5'35auxFf(x)(st))(i)(xs)(st)
+c_liftCases'46_'35selFP5'35auxFf x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCases._#selFP5#auxFf")(x)
+
+
+
+c_liftCasesFunc :: Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.FlatCurry.C_FuncDecl -> (Curry.Module.Prelude.T3 (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T3 (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl))
+c_liftCasesFunc x1 x2 x3 x4 x5@(Curry.Module.Prelude.T3 x6 x7 x8) st = let {x9 = Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_funcBody(st))(x4)(st)} in let {x10 = Curry.Module.Prelude.pf(Curry.Module.FlatCurryGoodies.c_trExpr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_liftCasesFunc'46var'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_liftCasesFunc'46lit'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618(x3)(x2)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618)))} in let {x11 = Curry.Module.LiftCases.c_liftCasesFunc_case_20(x7)(x9)(x10)(x1)(st)} in Curry.Module.Prelude.T3(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc((Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updFuncBody(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP61'35exp(x11)(st))))(st))(x4)(st))))(x6)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP62'35iMain(x11)(st))(Curry.Module.Prelude.op_46(x8)(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP63'35ffeMain(x11)(st))(st))
+c_liftCasesFunc x1 x2 x3 x4 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_liftCasesFunc x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc")(x)
+
+
+
+c_liftCasesFunc'46var'4618 :: (Curry t0,Curry t1) => Curry.Module.Prelude.C_Int -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_liftCasesFunc'46var'4618 x1 x2 st = Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Var(x1))(x2)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))((Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List))
+
+
+
+c_liftCasesFunc'46lit'4618 :: (Curry t0,Curry t1,Curry t2) => Curry.Module.FlatCurry.C_Literal -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2)
+c_liftCasesFunc'46lit'4618 x1 x2 st = Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Lit(x1))(x2)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.Prelude.List)
+
+
+
+c_liftCasesFunc'46comb'4618 :: (Curry t0,Curry t1,Curry t2) => Curry.Module.FlatCurry.C_CombType -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2)))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2)
+c_liftCasesFunc'46comb'4618 x1 x2 x3 x4 st = let {x5 = Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_fold(x4)(st))(x3)(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Comb(x1)(x2)(Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39(x5)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39(x5)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff(x5)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs(x5)(st))
+
+
+
+c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39 :: (Curry t149,Curry t156,Curry t157) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t149 (Curry.Module.Prelude.Prim (t156 -> Curry.RunTimeSystem.State -> t156)) (Curry.Module.Prelude.List t157)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46comb'4618'46_'35selFP10'35args'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.comb.18._#selFP10#args'")(x)
+
+
+
+c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39 :: (Curry t149,Curry t156,Curry t157) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t149 (Curry.Module.Prelude.Prim (t156 -> Curry.RunTimeSystem.State -> t156)) (Curry.Module.Prelude.List t157)) -> Curry.RunTimeSystem.State -> t149
+c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46comb'4618'46_'35selFP11'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.comb.18._#selFP11#i'")(x)
+
+
+
+c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff :: (Curry t149,Curry t156,Curry t157) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t149 (Curry.Module.Prelude.Prim (t156 -> Curry.RunTimeSystem.State -> t156)) (Curry.Module.Prelude.List t157)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t156 -> Curry.RunTimeSystem.State -> t156)
+c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46comb'4618'46_'35selFP12'35ff x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.comb.18._#selFP12#ff")(x)
+
+
+
+c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs :: (Curry t149,Curry t156,Curry t157) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t149 (Curry.Module.Prelude.Prim (t156 -> Curry.RunTimeSystem.State -> t156)) (Curry.Module.Prelude.List t157)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t157
+c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46comb'4618'46_'35selFP13'35vs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.comb.18._#selFP13#vs")(x)
+
+
+
+c_liftCasesFunc'46leT'4618 :: (Curry t0,Curry t1,Curry t2,Curry t3) => (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t2 (Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t2 (Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_liftCasesFunc'46leT'4618 x1 x2 x3 st = let {x4 = Curry.Module.Prelude.c_unzip(x1)(st)} in let {x5 = Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs(x4)(st)} in let {x7 = Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_fold(x3)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP26'35es(x4)(st))(st)} in let {x12 = Curry.Module.Prelude.c_apply(x2)(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39(x7)(st))(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Let(Curry.Module.Prelude.c_zip(x5)(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39(x7)(st))(st))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39(x12)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39(x12)(st))(Curry.Module.Prelude.op_46(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes(x7)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe(x12)(st))(st))(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_elemOf(st))(x5)(st))(st))(Curry.Module.Prelude.op_43_43(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves(x7)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve(x12)(st))(st))(st))
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (t161 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP25'35vs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP25#vs")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP26'35es :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (t161 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (t161 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)))
+c_liftCasesFunc'46leT'4618'46_'35selFP26'35es x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_liftCasesFunc'46leT'4618'46_'35selFP26'35es (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP26'35es(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP26'35es x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP26#es")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39 :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP21'35es'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP21#es'")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39 :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t161
+c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP22'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP22#i'")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)
+c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP23'35ffes x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP23#ffes")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves :: (Curry t161,Curry t172) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t161 (Curry.Module.Prelude.Prim (t172 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP24'35ves x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP24#ves")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39 :: (Curry t175,Curry t184,Curry t172) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t175 (Curry.Module.Prelude.Prim (t184 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP17'35e'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP17#e'")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39 :: (Curry t175,Curry t184,Curry t172) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t175 (Curry.Module.Prelude.Prim (t184 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t175
+c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP18'35i'39'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP18#i''")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe :: (Curry t175,Curry t184,Curry t172) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t175 (Curry.Module.Prelude.Prim (t184 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t184 -> Curry.RunTimeSystem.State -> t172)
+c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP19'35ffe x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP19#ffe")(x)
+
+
+
+c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve :: (Curry t175,Curry t184,Curry t172) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t175 (Curry.Module.Prelude.Prim (t184 -> Curry.RunTimeSystem.State -> t172)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46leT'4618'46_'35selFP20'35ve x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.leT.18._#selFP20#ve")(x)
+
+
+
+c_liftCasesFunc'46freE'4618 :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t1 t2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t1 t2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_liftCasesFunc'46freE'4618 x1 x2 x3 st = let {x4 = Curry.Module.Prelude.c_apply(x2)(x3)(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Free(x1)(Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39(x4)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39(x4)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff(x4)(st))(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_elemOf(st))(x1)(st))(st))(Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve(x4)(st))(st))
+
+
+
+c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39 :: (Curry t196,Curry t197) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t196 t197 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46freE'4618'46_'35selFP28'35e'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.freE.18._#selFP28#e'")(x)
+
+
+
+c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39 :: (Curry t196,Curry t197) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t196 t197 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t196
+c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46freE'4618'46_'35selFP29'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.freE.18._#selFP29#i'")(x)
+
+
+
+c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff :: (Curry t196,Curry t197) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t196 t197 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t197
+c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46freE'4618'46_'35selFP30'35ff x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.freE.18._#selFP30#ff")(x)
+
+
+
+c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve :: (Curry t196,Curry t197) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t196 t197 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46freE'4618'46_'35selFP31'35ve x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.freE.18._#selFP31#ve")(x)
+
+
+
+c_liftCasesFunc'46or'4618 :: (Curry t0,Curry t1,Curry t2) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t0 (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List t2)
+c_liftCasesFunc'46or'4618 x1 x2 x3 st = let {x4 = Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_fold(x3)(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Or(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39(x4)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39(x4)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39(x4)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff(x4)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs(x4)(st))
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39 :: (Curry t209,Curry t218,Curry t219) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t209 (Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)) (Curry.Module.Prelude.List t219)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_17(x2)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP33#e1'")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39 :: (Curry t209,Curry t218,Curry t219) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t209 (Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)) (Curry.Module.Prelude.List t219)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_14(x2)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP34#e2'")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39 :: (Curry t209,Curry t218,Curry t219) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t209 (Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)) (Curry.Module.Prelude.List t219)) -> Curry.RunTimeSystem.State -> t209
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_11(x3)(x2)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP35#i'")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff :: (Curry t209,Curry t218,Curry t219) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t209 (Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)) (Curry.Module.Prelude.List t219)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_8(x4)(x2)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP36#ff")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs :: (Curry t209,Curry t218,Curry t219) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) t209 (Curry.Module.Prelude.Prim (t218 -> Curry.RunTimeSystem.State -> t218)) (Curry.Module.Prelude.List t219)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t219
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_5(x5)(x2)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP37#vs")(x)
+
+
+
+c_liftCasesFunc'46casE'4618 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.FlatCurry.C_CaseType -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_BranchExpr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> t1)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t1 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_liftCasesFunc'46casE'4618 x1 x2 x3 x4 x5 x6 st = let {x7 = Curry.Module.Prelude.c_apply(x4)(x6)(st)} in let {x8 = Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39(x7)(st)} in let {x12 = Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_fold(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39(x7)(st))(st))(x5)(st)} in let {x14 = Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39(x12)(st)} in let {x17 = Curry.Module.LiftCases.c_nub(Curry.Module.Prelude.op_43_43(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve(x7)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs(x12)(st))(st))(st)} in let {x18 = Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618_case_2(x17)(x8)(st)} in Curry.Module.Prelude.T4(Curry.Module.LiftCases.c_genFuncCall(x2)(x1)(x14)(x18)(x8)(st))(Curry.Module.Prelude.op_43(x14)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc((Curry.Module.Prelude.:<)(Curry.Module.LiftCases.c_genFunc(x2)(x1)(x14)(x18)(x8)(x3)(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39(x12)(st))(st))))(Curry.Module.Prelude.op_46(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe(x7)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs(x12)(st))(st))(st))(x17)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39 :: (Curry t238) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP44'35e'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP44#e'")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39 :: (Curry t238) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP45'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP45#i'")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe :: (Curry t238) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP46'35ffe x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP46#ffe")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve :: (Curry t238) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP47'35ve x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP47#ve")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39 :: (Curry t238) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> t238)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr
+c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP40'35bs'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP40#bs'")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39 :: (Curry t238) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> t238)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP41'35i'39'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP41#i''")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs :: (Curry t238) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> t238)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> t238)
+c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP42'35ffbs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP42#ffbs")(x)
+
+
+
+c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs :: (Curry t238) => (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim (t238 -> Curry.RunTimeSystem.State -> t238)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618'46_'35selFP43'35vbs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18._#selFP43#vbs")(x)
+
+
+
+c_liftCasesFunc'46branch'4618 :: (Curry t0,Curry t1,Curry t2) => Curry.Module.FlatCurry.C_Pattern -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t1 t2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))) -> t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_BranchExpr t1 t2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_liftCasesFunc'46branch'4618 x1 x2 x3 st = let {x4 = Curry.Module.Prelude.c_apply(x2)(x3)(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Branch(x1)(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39(x4)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39(x4)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff(x4)(st))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_removePVars(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve(x4)(st))(st))(x1)(st))
+
+
+
+c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39 :: (Curry t260,Curry t261) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t260 t261 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46branch'4618'46_'35selFP49'35e'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.branch.18._#selFP49#e'")(x)
+
+
+
+c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39 :: (Curry t260,Curry t261) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t260 t261 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t260
+c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46branch'4618'46_'35selFP50'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.branch.18._#selFP50#i'")(x)
+
+
+
+c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff :: (Curry t260,Curry t261) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t260 t261 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> t261
+c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46branch'4618'46_'35selFP51'35ff x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.branch.18._#selFP51#ff")(x)
+
+
+
+c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve :: (Curry t260,Curry t261) => (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr t260 t261 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46branch'4618'46_'35selFP52'35ve x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.branch.18._#selFP52#ve")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP58'35e'39 :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46_'35selFP58'35e'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46_'35selFP58'35e'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP58'35e'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP58'35e'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP58#e'")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP59'35i'39 :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46_'35selFP59'35i'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46_'35selFP59'35i'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP59'35i'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP59'35i'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP59#i'")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP60'35ffe :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCasesFunc'46_'35selFP60'35ffe x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46_'35selFP60'35ffe (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP60'35ffe(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP60'35ffe x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP60#ffe")(x)
+
+
+
+c_liftCasesFunc'46_'35lambda3 :: (Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)))) -> Curry.Module.FlatCurry.C_BranchExpr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_BranchExpr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int))
+c_liftCasesFunc'46_'35lambda3 x1 x2@(Curry.Module.FlatCurry.C_Branch x3 x4) st = Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_liftCasesFunc'46branch'4618(x3)(Curry.Module.Prelude.c_apply(x1)(x4)(st)))
+c_liftCasesFunc'46_'35lambda3 x1 (Curry.Module.FlatCurry.C_BranchExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35lambda3(x1)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35lambda3 x1 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#lambda3")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP55'35bs'39 :: (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr
+c_liftCasesFunc'46_'35selFP55'35bs'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46_'35selFP55'35bs'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP55'35bs'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP55'35bs'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP55#bs'")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP56'35i'39'39 :: (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46_'35selFP56'35i'39'39 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46_'35selFP56'35i'39'39 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP56'35i'39'39(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP56'35i'39'39 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP56#i''")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP57'35ffbs :: (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCasesFunc'46_'35selFP57'35ffbs x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46_'35selFP57'35ffbs (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP57'35ffbs(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP57'35ffbs x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP57#ffbs")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP61'35exp :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_liftCasesFunc'46_'35selFP61'35exp x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_liftCasesFunc'46_'35selFP61'35exp (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP61'35exp(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP61'35exp x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP61#exp")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP62'35iMain :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_liftCasesFunc'46_'35selFP62'35iMain x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_liftCasesFunc'46_'35selFP62'35iMain (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP62'35iMain(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP62'35iMain x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP62#iMain")(x)
+
+
+
+c_liftCasesFunc'46_'35selFP63'35ffeMain :: (Curry.Module.Prelude.T4 Curry.Module.FlatCurry.C_Expr Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl)
+c_liftCasesFunc'46_'35selFP63'35ffeMain x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_liftCasesFunc'46_'35selFP63'35ffeMain (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP63'35ffeMain(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46_'35selFP63'35ffeMain x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc._#selFP63#ffeMain")(x)
+
+
+
+c_fold :: (Curry t0,Curry t1,Curry t2,Curry t3) => t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 t1 t0 (Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t2)) (Curry.Module.Prelude.List t3)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 (Curry.Module.Prelude.List t1) t0 (Curry.Module.Prelude.Prim (t2 -> Curry.RunTimeSystem.State -> t2)) (Curry.Module.Prelude.List t3))
+c_fold x1 st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_fold'46once'4674))(Curry.Module.Prelude.T4(Curry.Module.Prelude.List)(x1)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.Prelude.List)))
+
+
+
+c_fold'46once'4674 :: (Curry t0,Curry t1,Curry t2,Curry t3,Curry t4,Curry t5,Curry t6) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 t1 t2 (Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> t4)) (Curry.Module.Prelude.List t5))) -> (Curry.Module.Prelude.T4 (Curry.Module.Prelude.List t1) t0 (Curry.Module.Prelude.Prim (t4 -> Curry.RunTimeSystem.State -> t6)) (Curry.Module.Prelude.List t5)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T4 (Curry.Module.Prelude.List t1) t2 (Curry.Module.Prelude.Prim (t3 -> Curry.RunTimeSystem.State -> t6)) (Curry.Module.Prelude.List t5)
+c_fold'46once'4674 x1 x2@(Curry.Module.Prelude.T4 x3 x4 x5 x6) st = let {x7 = Curry.Module.Prelude.c_apply(x1)(x4)(st)} in Curry.Module.Prelude.T4((Curry.Module.Prelude.:<)(Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP65'35e(x7)(st))(x3))(Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP66'35k(x7)(st))(Curry.Module.Prelude.op_46(x5)(Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP67'35ff2(x7)(st))(st))(Curry.Module.Prelude.op_43_43(x6)(Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP68'35vs2(x7)(st))(st))
+c_fold'46once'4674 x1 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_fold'46once'4674(x1)(x)(st))(i)(xs)(st)
+c_fold'46once'4674 x1 x st = Curry.RunTimeSystem.patternFail("LiftCases.fold.once.74")(x)
+
+
+
+c_fold'46once'4674'46_'35selFP65'35e :: (Curry t21,Curry t22,Curry t30,Curry t28,Curry t31) => (Curry.Module.Prelude.T4 t21 t22 (Curry.Module.Prelude.Prim (t30 -> Curry.RunTimeSystem.State -> t28)) (Curry.Module.Prelude.List t31)) -> Curry.RunTimeSystem.State -> t21
+c_fold'46once'4674'46_'35selFP65'35e x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x2
+c_fold'46once'4674'46_'35selFP65'35e (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP65'35e(x)(st))(i)(xs)(st)
+c_fold'46once'4674'46_'35selFP65'35e x st = Curry.RunTimeSystem.patternFail("LiftCases.fold.once.74._#selFP65#e")(x)
+
+
+
+c_fold'46once'4674'46_'35selFP66'35k :: (Curry t21,Curry t22,Curry t30,Curry t28,Curry t31) => (Curry.Module.Prelude.T4 t21 t22 (Curry.Module.Prelude.Prim (t30 -> Curry.RunTimeSystem.State -> t28)) (Curry.Module.Prelude.List t31)) -> Curry.RunTimeSystem.State -> t22
+c_fold'46once'4674'46_'35selFP66'35k x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x3
+c_fold'46once'4674'46_'35selFP66'35k (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP66'35k(x)(st))(i)(xs)(st)
+c_fold'46once'4674'46_'35selFP66'35k x st = Curry.RunTimeSystem.patternFail("LiftCases.fold.once.74._#selFP66#k")(x)
+
+
+
+c_fold'46once'4674'46_'35selFP67'35ff2 :: (Curry t21,Curry t22,Curry t30,Curry t28,Curry t31) => (Curry.Module.Prelude.T4 t21 t22 (Curry.Module.Prelude.Prim (t30 -> Curry.RunTimeSystem.State -> t28)) (Curry.Module.Prelude.List t31)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t30 -> Curry.RunTimeSystem.State -> t28)
+c_fold'46once'4674'46_'35selFP67'35ff2 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x4
+c_fold'46once'4674'46_'35selFP67'35ff2 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP67'35ff2(x)(st))(i)(xs)(st)
+c_fold'46once'4674'46_'35selFP67'35ff2 x st = Curry.RunTimeSystem.patternFail("LiftCases.fold.once.74._#selFP67#ff2")(x)
+
+
+
+c_fold'46once'4674'46_'35selFP68'35vs2 :: (Curry t21,Curry t22,Curry t30,Curry t28,Curry t31) => (Curry.Module.Prelude.T4 t21 t22 (Curry.Module.Prelude.Prim (t30 -> Curry.RunTimeSystem.State -> t28)) (Curry.Module.Prelude.List t31)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t31
+c_fold'46once'4674'46_'35selFP68'35vs2 x1@(Curry.Module.Prelude.T4 x2 x3 x4 x5) st = x5
+c_fold'46once'4674'46_'35selFP68'35vs2 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_fold'46once'4674'46_'35selFP68'35vs2(x)(st))(i)(xs)(st)
+c_fold'46once'4674'46_'35selFP68'35vs2 x st = Curry.RunTimeSystem.patternFail("LiftCases.fold.once.74._#selFP68#vs2")(x)
+
+
+
+c_genFuncCall :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_genFuncCall x1 x2 x3 x4 x5 st = Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_FuncCall)(Curry.Module.Prelude.T2(x1)(Curry.Module.Prelude.op_43_43(x2)(Curry.Module.Prelude.c_show(x3)(st))(st)))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Var))(x4)(st))((Curry.Module.Prelude.:<)(x5)(Curry.Module.Prelude.List))(st))
+
+
+
+c_genFunc :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.FlatCurry.C_Expr -> Curry.Module.FlatCurry.C_CaseType -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_FuncDecl
+c_genFunc x1 x2 x3 x4 x5 x6 x7 st = let {x8 = Curry.Module.LiftCases.c_genFunc_case_1(x4)(x7)(x5)(st)} in Curry.Module.Prelude.op_36(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Func(Curry.Module.Prelude.T2(x1)(Curry.Module.Prelude.op_43_43(x2)(Curry.Module.Prelude.c_show(x3)(st))(st)))(Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_length(x4)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.FlatCurry.C_Private)(Curry.Module.FlatCurry.C_TVar(Curry.Module.Prelude.c_negate(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))(st)))))(Curry.Module.FlatCurry.C_Rule(Curry.Module.Prelude.op_43_43(x4)((Curry.Module.Prelude.:<)(x8)(Curry.Module.Prelude.List))(st))(Curry.Module.FlatCurry.C_Case(x6)(Curry.Module.FlatCurry.C_Var(x8))(x7)))(st)
+
+
+
+c_genFunc'46allVarsBranch'4682 :: Curry.Module.FlatCurry.C_BranchExpr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_genFunc'46allVarsBranch'4682 x1@(Curry.Module.FlatCurry.C_Branch x2 x3) st = Curry.Module.Prelude.op_43_43(Curry.Module.FlatCurryGoodies.c_trPattern(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682'46_'35lambda6))(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682'46_'35lambda7))(x2)(st))(Curry.Module.FlatCurryGoodies.c_allVars(x3)(st))(st)
+c_genFunc'46allVarsBranch'4682 (Curry.Module.FlatCurry.C_BranchExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682(x)(st))(i)(xs)(st)
+c_genFunc'46allVarsBranch'4682 x st = Curry.RunTimeSystem.patternFail("LiftCases.genFunc.allVarsBranch.82")(x)
+
+
+
+c_genFunc'46allVarsBranch'4682'46_'35lambda6 :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_genFunc'46allVarsBranch'4682'46_'35lambda6 x1 x2 st = x2
+
+
+
+c_genFunc'46allVarsBranch'4682'46_'35lambda7 :: (Curry t262) => Curry.Module.FlatCurry.C_Literal -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List t262
+c_genFunc'46allVarsBranch'4682'46_'35lambda7 x1 st = Curry.Module.Prelude.List
+
+
+
+c_removePVars :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Pattern -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)
+c_removePVars x1 st = Curry.Module.Prelude.pf(Curry.Module.FlatCurryGoodies.c_trPattern(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_removePVars'46_'35lambda8(x1)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(x1))))
+
+
+
+c_removePVars'46_'35lambda8 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_removePVars'46_'35lambda8 x1 x2 x3 st = Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_elemOf(st))(x3)(st))(st))(x1)(st)
+
+
+
+c_genAuxName :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_genAuxName st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_foldl(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.LiftCases.c_addUnderscores))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))(Curry.Module.Prelude.List))))))))
+
+
+
+c_addUnderscores :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_addUnderscores x1 x2 st = Curry.Module.LiftCases.c_addUnderscores_case_0(x1)(x2)(Curry.Module.List.c_isPrefixOf(x1)(x2)(st))(st)
+
+
+
+c_elemOf :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool))
+c_elemOf st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_elem)))
+
+
+
+c_nub :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int
+c_nub x1 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_fst))))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.FiniteMap.c_fmToList))(Curry.Module.Prelude.op_36(Curry.Module.FiniteMap.c_listToFM(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_60))(st))(Curry.Module.Prelude.c_zip(x1)(Curry.Module.Prelude.c_repeat(Curry.Module.Prelude.T0)(st))(st))(st))(st))(st)
+
+
+
+c_addUnderscores_case_0 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.LiftCases.c_addUnderscores(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))(Curry.Module.Prelude.List))(st))(x2)(st)
+c_addUnderscores_case_0 x1 x2 x3@Curry.Module.Prelude.C_False st = x1
+c_addUnderscores_case_0 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_addUnderscores_case_0(x1)(x2)(x)(st))(i)(xs)(st)
+c_addUnderscores_case_0 x1 x2 x st = Curry.RunTimeSystem.patternFail("LiftCases.addUnderscores_case_0")(x)
+
+
+
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Var x9) st = x9
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Lit x10) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Comb x11 x12 x13) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Let x14 x15) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Free x16 x17) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Or x18 x19) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 x5@(Curry.Module.FlatCurry.C_Case x20 x21 x22) st = Curry.Module.Prelude.op_43(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.c_max))(Curry.Module.Prelude.C_Zero)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_genFunc'46allVarsBranch'4682))(st))(x7)(st))(st))(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_genFunc_case_1 x4 x7 (Curry.Module.FlatCurry.C_ExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_genFunc_case_1(x4)(x7)(x)(st))(i)(xs)(st)
+c_genFunc_case_1 x4 x7 x st = Curry.RunTimeSystem.patternFail("LiftCases.genFunc_case_1")(x)
+
+
+
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Var x19) st = Curry.Module.List.c_delete(x19)(x17)(st)
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Lit x20) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Comb x21 x22 x23) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Let x24 x25) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Free x26 x27) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Or x28 x29) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 x8@(Curry.Module.FlatCurry.C_Case x30 x31 x32) st = x17
+c_liftCasesFunc'46casE'4618_case_2 x17 (Curry.Module.FlatCurry.C_ExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46casE'4618_case_2(x17)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46casE'4618_case_2 x17 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.casE.18_case_2")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_5 x5 x2@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_4(x5)(x7)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_5 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_5(x5)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_5 x5 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP37#vs_case_5")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_4 x5 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_3(x5)(x9)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_4 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_4(x5)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_4 x5 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP37#vs_case_4")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_3 x5 x9@Curry.Module.Prelude.List st = x5
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_3 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_3(x5)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP37'35vs_case_3 x5 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP37#vs_case_3")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_8 x4 x2@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_7(x4)(x7)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_8 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_8(x4)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_8 x4 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP36#ff_case_8")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_7 x4 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_6(x4)(x9)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_7 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_7(x4)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_7 x4 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP36#ff_case_7")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_6 x4 x9@Curry.Module.Prelude.List st = x4
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_6 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_6(x4)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP36'35ff_case_6 x4 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP36#ff_case_6")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_11 x3 x2@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_10(x3)(x7)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_11 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_11(x3)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_11 x3 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP35#i'_case_11")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_10 x3 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_9(x3)(x9)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_10 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_10(x3)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_10 x3 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP35#i'_case_10")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_9 x3 x9@Curry.Module.Prelude.List st = x3
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_9 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_9(x3)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP35'35i'39_case_9 x3 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP35#i'_case_9")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_14 x2@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_13(x7)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_14 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_14(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_14 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP34#e2'_case_14")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_13 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_12(x8)(x9)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_13 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_13(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_13 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP34#e2'_case_13")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_12 x8 x9@Curry.Module.Prelude.List st = x8
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_12 x8 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_12(x8)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP34'35e2'39_case_12 x8 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP34#e2'_case_12")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_17 x2@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_16(x6)(x7)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_17 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_17(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_17 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP33#e1'_case_17")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_16 x6 x7@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_15(x6)(x9)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_16 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_16(x6)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_16 x6 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP33#e1'_case_16")(x)
+
+
+
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_15 x6 x9@Curry.Module.Prelude.List st = x6
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_15 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_15(x6)(x)(st))(i)(xs)(st)
+c_liftCasesFunc'46or'4618'46_'35selFP33'35e1'39_case_15 x6 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc.or.18._#selFP33#e1'_case_15")(x)
+
+
+
+c_liftCasesFunc_case_20 x7 x9 x10 x1@Curry.Module.Prelude.C_True st = Curry.Module.LiftCases.c_liftCasesFunc_case_19(x7)(x10)(x9)(st)
+c_liftCasesFunc_case_20 x7 x9 x10 x1@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_20 x7 x9 x10 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc_case_20(x7)(x9)(x10)(x)(st))(i)(xs)(st)
+c_liftCasesFunc_case_20 x7 x9 x10 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc_case_20")(x)
+
+
+
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Case x12 x13 x14) st = Curry.Module.LiftCases.c_liftCasesFunc_case_18(x7)(x9)(x10)(x12)(x14)(x13)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Var x37) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Lit x38) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Comb x39 x40 x41) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Let x42 x43) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Free x44 x45) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 x9@(Curry.Module.FlatCurry.C_Or x46 x47) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_19 x7 x10 (Curry.Module.FlatCurry.C_ExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc_case_19(x7)(x10)(x)(st))(i)(xs)(st)
+c_liftCasesFunc_case_19 x7 x10 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc_case_19")(x)
+
+
+
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Var x15) st = let {x16 = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(Curry.Module.FlatCurry.C_Var(x15))(st))(x7)(st)} in let {x20 = Curry.Module.Prelude.c_apply(Curry.Module.LiftCases.c_fold(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP59'35i'39(x16)(st))(st))(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.LiftCases.c_liftCasesFunc'46_'35lambda3(x10)))(x14)(st))(st)} in Curry.Module.Prelude.T4(Curry.Module.FlatCurry.C_Case(x12)(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP58'35e'39(x16)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP55'35bs'39(x20)(st)))(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP56'35i'39'39(x20)(st))(Curry.Module.Prelude.op_46(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP60'35ffe(x16)(st))(Curry.Module.LiftCases.c_liftCasesFunc'46_'35selFP57'35ffbs(x20)(st))(st))(Curry.Module.Prelude.List)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Lit x24) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Comb x25 x26 x27) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Let x28 x29) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Free x30 x31) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Or x32 x33) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x13@(Curry.Module.FlatCurry.C_Case x34 x35 x36) st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x10)(x9)(st))(x7)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 (Curry.Module.FlatCurry.C_ExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.LiftCases.c_liftCasesFunc_case_18(x7)(x9)(x10)(x12)(x14)(x)(st))(i)(xs)(st)
+c_liftCasesFunc_case_18 x7 x9 x10 x12 x14 x st = Curry.RunTimeSystem.patternFail("LiftCases.liftCasesFunc_case_18")(x)
+
+
diff --git a/dist/build/prophecy/prophecy-tmp/Curry/Module/Make.hs b/dist/build/prophecy/prophecy-tmp/Curry/Module/Make.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/prophecy/prophecy-tmp/Curry/Module/Make.hs
@@ -0,0 +1,463 @@
+{-# OPTIONS -cpp #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Make (module Curry.Module.Make) where
+
+import Curry.RunTimeSystem
+import Curry.Module.Directory
+import Curry.Module.Distribution
+import Curry.Module.FileGoodies
+import Curry.Module.FiniteMap
+import Curry.Module.FlatCurry
+import Curry.Module.IOExts
+import Curry.Module.Prelude
+import Curry.Module.Sort
+import Curry.Module.System
+import Curry.Module.Time
+import Curry.Module.FlatCurryGoodies
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_ModuleName = Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+
+type C_Path = Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+
+type C_FileName = Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+
+type C_TestAct t0 = (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)
+
+type C_ProgAct t0 = (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List t0) -> Curry.Module.FlatCurry.C_Prog -> Curry.Module.Prelude.C_IO t0
+
+type C_Done t0 = Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t0)
+
+type C_Getter t0 = Curry.Module.Make.C_Parameter -> t0
+
+type C_Setter t0 = t0 -> Curry.Module.Make.C_Parameter -> Curry.Module.Make.C_Parameter
+
+data C_Parameter = C_Parameter Curry.Module.Prelude.C_Bool Curry.Module.Prelude.C_Bool (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+  | C_ParameterFail Curry.RunTimeSystem.C_Exceptions
+  | C_ParameterOr Curry.RunTimeSystem.OrRef (Curry.RunTimeSystem.Branches Curry.Module.Make.C_Parameter)
+
+instance BaseCurry Curry.Module.Make.C_Parameter where
+  nf f (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) state0 = Curry.RunTimeSystem.nfCTC(\ v1 state1 -> Curry.RunTimeSystem.nfCTC(\ v2 state2 -> Curry.RunTimeSystem.nfCTC(\ v3 state3 -> Curry.RunTimeSystem.nfCTC(\ v4 state4 -> Curry.RunTimeSystem.nfCTC(\ v5 state5 -> f(Curry.Module.Make.C_Parameter(v1)(v2)(v3)(v4)(v5))(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  nf f x st = f(x)(st)
+
+  gnf f (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) state0 = Curry.RunTimeSystem.gnfCTC(\ v1 state1 -> Curry.RunTimeSystem.gnfCTC(\ v2 state2 -> Curry.RunTimeSystem.gnfCTC(\ v3 state3 -> Curry.RunTimeSystem.gnfCTC(\ v4 state4 -> Curry.RunTimeSystem.gnfCTC(\ v5 state5 -> f(Curry.Module.Make.C_Parameter(v1)(v2)(v3)(v4)(v5))(state5))(x5)(state4))(x4)(state3))(x3)(state2))(x2)(state1))(x1)(state0)
+  gnf f x st = f(x)(st)
+
+  generator i = Curry.RunTimeSystem.withRef(\ r -> Curry.Module.Make.C_ParameterOr(Curry.RunTimeSystem.mkRef(r)(5)(i))([Curry.Module.Make.C_Parameter(Curry.RunTimeSystem.generator((Prelude.+)(r)((4::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((3::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((2::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((1::Int))))(Curry.RunTimeSystem.generator((Prelude.+)(r)((0::Int))))]))(5)
+
+  failed  = Curry.Module.Make.C_ParameterFail
+
+  branching  = Curry.Module.Make.C_ParameterOr
+
+  consKind (Curry.Module.Make.C_ParameterOr _ _) = Curry.RunTimeSystem.Branching
+  consKind (Curry.Module.Make.C_ParameterFail _) = Curry.RunTimeSystem.Failed
+  consKind _ = Curry.RunTimeSystem.Val
+
+  exceptions (Curry.Module.Make.C_ParameterFail x) = x
+
+  orRef (Curry.Module.Make.C_ParameterOr x _) = x
+
+  branches (Curry.Module.Make.C_ParameterOr _ x) = x
+
+
+
+
+
+instance Curry Curry.Module.Make.C_Parameter where
+  strEq (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) (Curry.Module.Make.C_Parameter y1 y2 y3 y4 y5) st = Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x1)(y1)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x2)(y2)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x3)(y3)(st))(Curry.Module.Prelude.concAnd(Curry.Module.Prelude.genStrEq(x4)(y4)(st))(Curry.Module.Prelude.genStrEq(x5)(y5)(st))(st))(st))(st))(st)
+  strEq _ x0 _ = Curry.Module.Prelude.strEqFail(Curry.Module.Prelude.typeName(x0))
+
+  eq (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) (Curry.Module.Make.C_Parameter y1 y2 y3 y4 y5) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x1)(y1)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x2)(y2)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x3)(y3)(st))(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.genEq(x4)(y4)(st))(Curry.Module.Prelude.genEq(x5)(y5)(st))(st))(st))(st))(st)
+  eq _ _ _ = Curry.Module.Prelude.C_False
+
+  propagate f (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) st = Curry.Module.Make.C_Parameter(f((0::Int))(x1)(st))(f((1::Int))(x2)(st))(f((2::Int))(x3)(st))(f((3::Int))(x4)(st))(f((4::Int))(x5)(st))
+
+  foldCurry f c (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) st = f(x1)(f(x2)(f(x3)(f(x4)(f(x5)(c)(st))(st))(st))(st))(st)
+
+  typeName _ = "Parameter"
+
+  showQ d (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) = Prelude.showParen(Prelude.True)(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Make.Parameter "))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x2))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x3))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x4))((Prelude..)(Prelude.showChar(' '))(Curry.Module.Prelude.showQ(Curry.RunTimeSystem.eleven)(x5))))))))))
+
+
+  showQ _ (Curry.Module.Make.C_ParameterOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Show Curry.Module.Make.C_Parameter where
+  showsPrec d (Curry.Module.Make.C_Parameter x1 x2 x3 x4 x5) = Prelude.showParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(showStr)
+   where
+    showStr  = (Prelude..)(Prelude.showString("Parameter "))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x1))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x2))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x3))((Prelude..)(Prelude.showChar(' '))((Prelude..)(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x4))((Prelude..)(Prelude.showChar(' '))(Prelude.showsPrec(Curry.RunTimeSystem.eleven)(x5))))))))))
+
+
+  showsPrec _ (Curry.Module.Make.C_ParameterOr r _) = Prelude.showString((:)('_')(Prelude.show(Curry.RunTimeSystem.deref(r))))
+
+
+
+
+
+instance Read Curry.Module.Make.C_Parameter where
+  readsPrec d r = Prelude.readParen((Prelude.>)(d)(Curry.RunTimeSystem.ten))(\ r -> [(,)(Curry.Module.Make.C_Parameter(x1)(x2)(x3)(x4)(x5))(r5) | ((,) _ r0) <- Curry.RunTimeSystem.readQualified("Make")("Parameter")(r), ((,) x1 r1) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r0), ((,) x2 r2) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r1), ((,) x3 r3) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r2), ((,) x4 r4) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r3), ((,) x5 r5) <- Prelude.readsPrec(Curry.RunTimeSystem.eleven)(r4)])(r)
+
+
+
+
+
+c_defaults :: Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_defaults st = Curry.Module.Make.C_Parameter(Curry.Module.Prelude.C_False)(Curry.Module.Prelude.C_False)(Curry.Module.Prelude.C_Nothing)(Curry.Module.Prelude.C_Nothing)(Curry.Module.Prelude.List)
+
+
+
+c_quiet :: Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_quiet x1@(Curry.Module.Make.C_Parameter x2 x3 x4 x5 x6) st = x2
+c_quiet (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_quiet(x)(st))(i)(xs)(st)
+c_quiet x st = Curry.RunTimeSystem.patternFail("Make.quiet")(x)
+
+
+
+c_setQuiet :: Curry.Module.Prelude.C_Bool -> Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_setQuiet x1 x2@(Curry.Module.Make.C_Parameter x3 x4 x5 x6 x7) st = Curry.Module.Make.C_Parameter(x1)(x4)(x5)(x6)(x7)
+c_setQuiet x1 (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_setQuiet(x1)(x)(st))(i)(xs)(st)
+c_setQuiet x1 x st = Curry.RunTimeSystem.patternFail("Make.setQuiet")(x)
+
+
+
+c_force :: Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_force x1@(Curry.Module.Make.C_Parameter x2 x3 x4 x5 x6) st = x3
+c_force (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_force(x)(st))(i)(xs)(st)
+c_force x st = Curry.RunTimeSystem.patternFail("Make.force")(x)
+
+
+
+c_setForce :: Curry.Module.Prelude.C_Bool -> Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_setForce x1 x2@(Curry.Module.Make.C_Parameter x3 x4 x5 x6 x7) st = Curry.Module.Make.C_Parameter(x3)(x1)(x5)(x6)(x7)
+c_setForce x1 (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_setForce(x1)(x)(st))(i)(xs)(st)
+c_setForce x1 x st = Curry.RunTimeSystem.patternFail("Make.setForce")(x)
+
+
+
+c_output :: Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_output x1@(Curry.Module.Make.C_Parameter x2 x3 x4 x5 x6) st = x4
+c_output (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_output(x)(st))(i)(xs)(st)
+c_output x st = Curry.RunTimeSystem.patternFail("Make.output")(x)
+
+
+
+c_setOutput :: (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_setOutput x1 x2@(Curry.Module.Make.C_Parameter x3 x4 x5 x6 x7) st = Curry.Module.Make.C_Parameter(x3)(x4)(x1)(x6)(x7)
+c_setOutput x1 (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_setOutput(x1)(x)(st))(i)(xs)(st)
+c_setOutput x1 x st = Curry.RunTimeSystem.patternFail("Make.setOutput")(x)
+
+
+
+c_main :: Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_main x1@(Curry.Module.Make.C_Parameter x2 x3 x4 x5 x6) st = x5
+c_main (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_main(x)(st))(i)(xs)(st)
+c_main x st = Curry.RunTimeSystem.patternFail("Make.main")(x)
+
+
+
+c_setMain :: (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_setMain x1 x2@(Curry.Module.Make.C_Parameter x3 x4 x5 x6 x7) st = Curry.Module.Make.C_Parameter(x3)(x4)(x5)(x1)(x7)
+c_setMain x1 (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_setMain(x1)(x)(st))(i)(xs)(st)
+c_setMain x1 x st = Curry.RunTimeSystem.patternFail("Make.setMain")(x)
+
+
+
+c_modulename :: Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_modulename x1@(Curry.Module.Make.C_Parameter x2 x3 x4 x5 x6) st = x6
+c_modulename (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_modulename(x)(st))(i)(xs)(st)
+c_modulename x st = Curry.RunTimeSystem.patternFail("Make.modulename")(x)
+
+
+
+c_setModulename :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_setModulename x1 x2@(Curry.Module.Make.C_Parameter x3 x4 x5 x6 x7) st = Curry.Module.Make.C_Parameter(x3)(x4)(x5)(x6)(x1)
+c_setModulename x1 (Curry.Module.Make.C_ParameterOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_setModulename(x1)(x)(st))(i)(xs)(st)
+c_setModulename x1 x st = Curry.RunTimeSystem.patternFail("Make.setModulename")(x)
+
+
+
+c_parseArgs :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Make.C_Parameter
+c_parseArgs st = Curry.Module.Prelude.op_62_62_61(Curry.Module.System.c_getArgs(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.pf(Curry.Module.Make.c_parseArgs'46parse'4650(Curry.Module.Prelude.c_error((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('<'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('>'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('<'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('q'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('q'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('>'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('<'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('>'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(st))(Curry.Module.Make.c_defaults(st))))(st))(st)
+
+
+
+c_parseArgs'46parse'4650 :: Curry.Module.Make.C_Parameter -> Curry.Module.Make.C_Parameter -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Make.C_Parameter
+c_parseArgs'46parse'4650 x1 x2 x3@Curry.Module.Prelude.List st = x1
+c_parseArgs'46parse'4650 x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Make.c_parseArgs'46parse'4650_case_15(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('q'))(Curry.Module.Prelude.List)))(st))(st)
+c_parseArgs'46parse'4650 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650(x1)(x2)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650 x1 x2 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50")(x)
+
+
+
+c_make :: (Curry t0) => Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0))))
+c_make st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.Make.c_makeWithFrontendParams(Curry.Module.Distribution.c_defaultParams(st)))
+
+
+
+c_makeWithFrontendParams :: (Curry t0) => Curry.Module.Distribution.C_FrontendParams -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_makeWithFrontendParams x1 x2 x3 x4 x5 st = let {x6 = Curry.Module.FileGoodies.c_splitDirectoryBaseName(x3)(st)} in Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_maybe(Curry.Module.Distribution.c_getLoadPath(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Distribution.c_fullPath(x1)(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4(x5)(Curry.Module.Make.c_makeWithFrontendParams'46_'35selFP3'35dir(x6)(st))(x1)(Curry.Module.Make.c_makeWithFrontendParams'46_'35selFP4'35modu(x6)(st))(x2)(x4)))(st)
+
+
+
+c_makeWithFrontendParams'46_'35selFP3'35dir :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_makeWithFrontendParams'46_'35selFP3'35dir x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_makeWithFrontendParams'46_'35selFP3'35dir (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_makeWithFrontendParams'46_'35selFP3'35dir(x)(st))(i)(xs)(st)
+c_makeWithFrontendParams'46_'35selFP3'35dir x st = Curry.RunTimeSystem.patternFail("Make.makeWithFrontendParams._#selFP3#dir")(x)
+
+
+
+c_makeWithFrontendParams'46_'35selFP4'35modu :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_makeWithFrontendParams'46_'35selFP4'35modu x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_makeWithFrontendParams'46_'35selFP4'35modu (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_makeWithFrontendParams'46_'35selFP4'35modu(x)(st))(i)(xs)(st)
+c_makeWithFrontendParams'46_'35selFP4'35modu x st = Curry.RunTimeSystem.patternFail("Make.makeWithFrontendParams._#selFP4#modu")(x)
+
+
+
+c_makeWithFrontendParams'46_'35lambda4 :: (Curry t209) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t209) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t209)))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Distribution.C_FrontendParams -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t209)))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_makeWithFrontendParams'46_'35lambda4 x1 x2 x3 x4 x5 x6 x7 st = let {x8 = Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4_case_6(x2)(x7)(Curry.Module.Prelude.op_61_61(x2)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List))(st))(st)} in Curry.Module.Prelude.op_62_62_61(Curry.Module.FileGoodies.c_lookupFileInPath(x4)((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List))))))))(Curry.Module.Prelude.List)))(x8)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5(x1)(x8)(x4)(Curry.Module.Distribution.c_setFullPath(x8)(x3)(st))(x5)(x6)))(st)
+
+
+
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5 :: (Curry t209) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t209) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t209)))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Distribution.C_FrontendParams -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t209)))) -> (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5 x1 x2 x3 x4 x5 x6 x7 st = Curry.Module.Prelude.op_62_62(Curry.Module.Make.c_unless(Curry.Module.Prelude.op_61_61(x7)(Curry.Module.Prelude.C_Nothing)(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Make.c_unless(x5)))(Curry.Module.Prelude.c_putStrLn((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))))))))(st))(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Distribution.c_callFrontendWithParams(Curry.Module.Distribution.C_FCY)(Curry.Module.Distribution.c_setQuiet(Curry.Module.Prelude.C_True)(x4)(st))(x3)(st))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Make.c_unless(x5)))(Curry.Module.Prelude.c_putStrLn((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))(Curry.Module.Prelude.List)))))))))))(st))(st))(st))(st))(st))(Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_newIORef(Curry.Module.FiniteMap.c_emptyFM(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda6))(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda7(x1)(x2)(x3)(x6)))(st))(st)
+
+
+
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda6 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda6 x1 x2 st = Curry.Module.Prelude.c_not(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Sort.c_leqString(st))(x1)(st))(x2)(st))(st)
+
+
+
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda7 :: (Curry t209) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t209) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t209)))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t209)))) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t209)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_makeWithFrontendParams'46_'35lambda4'46_'35lambda5'46_'35lambda7 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.op_62_62(Curry.Module.Make.c_workUpDependence(x2)(x5)(x4)(x1)(x3)(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.T0)(st))(st)
+
+
+
+c_workUpDependence :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t0)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_workUpDependence x1 x2 x3 x4 x5 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x2)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_workUpDependence'46_'35lambda8(x4)(x2)(x5)(x1)(x3)))(st)
+
+
+
+c_workUpDependence'46_'35lambda8 :: (Curry t141) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t141) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t141)))) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t141)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t141)))) -> (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t141) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t141
+c_workUpDependence'46_'35lambda8 x1 x2 x3 x4 x5 x6 st = Curry.Module.Prelude.c_maybe(Curry.Module.Make.c_process(x4)(x2)(x5)(x1)(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.FiniteMap.c_lookupFM(x6)(x3)(st))(st)
+
+
+
+c_process :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t0)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0
+c_process x1 x2 x3 x4 x5 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.FileGoodies.c_getFileInPath(Curry.Module.Prelude.op_43_43(x5)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.List)(Curry.Module.Prelude.List))(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_process'46_'35lambda9(x4)(x2)(x5)(x1)(x3)))(st)
+
+
+
+c_process'46_'35lambda9 :: (Curry t167) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t167) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t167)))) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t167)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t167)))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t167
+c_process'46_'35lambda9 x1 x2 x3 x4 x5 x6 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.op_62_62_61(Curry.Module.Make.c_fastReadImports(x6)(st))(Curry.Module.Prelude.c_mapIO(Curry.Module.Prelude.pf(Curry.Module.Make.c_workUpDependence(x4)(x2)(x5)(x1)))(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_process'46_'35lambda9'46_'35lambda10(x1)(x2)(x6)(x3)(x5)))(st)
+
+
+
+c_process'46_'35lambda9'46_'35lambda10 :: (Curry t167) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List t167) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t167)))) -> (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t167)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t167)))) -> (Curry.Module.Prelude.List t167) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t167
+c_process'46_'35lambda9'46_'35lambda10 x1 x2 x3 x4 x5 x6 st = let {x7 = Curry.Module.Prelude.op_43_43(Curry.Module.FileGoodies.c_dirName(x3)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('/'))(Curry.Module.Prelude.List))(st)} in Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x5)(x7)(st))(x4)(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_maybe(Curry.Module.Prelude.op_62_62_61(Curry.Module.FlatCurry.c_readFlatCurryFile(x3)(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x7)(st))(x6)(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))))(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11(x2)(x4)))(st)
+
+
+
+c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11 :: (Curry t167) => (Curry.Module.IOExts.C_IORef (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t167)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t167 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t167
+c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11 x1 x2 x3 st = Curry.Module.Prelude.op_62_62(Curry.Module.Make.c_updateIORef(x1)(Curry.Module.Prelude.pf(Curry.Module.Make.c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11'46_'35lambda12(x2)(x3)))(st))(Curry.Module.Prelude.c_return(x3)(st))(st)
+
+
+
+c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11'46_'35lambda12 :: (Curry t167) => (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> t167 -> (Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t167) -> Curry.RunTimeSystem.State -> Curry.Module.FiniteMap.C_FM (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t167
+c_process'46_'35lambda9'46_'35lambda10'46_'35lambda11'46_'35lambda12 x1 x2 x3 st = Curry.Module.FiniteMap.c_addToFM(x3)(x1)(x2)(st)
+
+
+
+c_obsolete :: (Curry t0) => Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t0)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t0)
+c_obsolete x1 x2 x3 x4 x5 x6 st = let {x7 = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x5)(st))(x6)(st)} in Curry.Module.Prelude.op_62_62_61(Curry.Module.Directory.c_doesFileExist(x7)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46_'35lambda15(x4)(x7)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.op_43_43(x5)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_36))(x6)))(st))(x3)(st))(x1)))(st)
+
+
+
+c_obsolete'46isNewerThan'4686 :: Curry.Module.Time.C_ClockTime -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_obsolete'46isNewerThan'4686 x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Directory.c_doesFileExist(x2)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46isNewerThan'4686'46_'35lambda13(x2)(x1)))(st)
+
+
+
+c_obsolete'46isNewerThan'4686'46_'35lambda13 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Time.C_ClockTime -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_obsolete'46isNewerThan'4686'46_'35lambda13 x1 x2 x3 st = Curry.Module.Make.c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5(x1)(x2)(x3)(Curry.Module.Prelude.c_not(x3)(st))(st)
+
+
+
+c_obsolete'46isNewerThan'4686'46_'35lambda13'46_'35lambda14 :: Curry.Module.Time.C_ClockTime -> Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.C_Bool
+c_obsolete'46isNewerThan'4686'46_'35lambda13'46_'35lambda14 x1 x2 st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.op_47_61(Curry.Module.Time.c_compareClockTime(x1)(x2)(st))(Curry.Module.Prelude.C_GT)(st))(st)
+
+
+
+c_obsolete'46_'35lambda15 :: (Curry t287) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t287)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Prelude.C_Bool -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t287)
+c_obsolete'46_'35lambda15 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Directory.c_getModificationTime(x2)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46_'35lambda15'46_'35lambda16(x1)(x2)(x3)(x4)))(st)
+c_obsolete'46_'35lambda15 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Make.c_unless(x4)))(Curry.Module.Prelude.c_putStrLn(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))(x2)(st))(st))(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.C_Nothing)(st))(st)
+c_obsolete'46_'35lambda15 x1 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_obsolete'46_'35lambda15(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_obsolete'46_'35lambda15 x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Make.obsolete._#lambda15")(x)
+
+
+
+c_obsolete'46_'35lambda15'46_'35lambda16 :: (Curry t287) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t287)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Prelude.C_Bool -> Curry.Module.Time.C_ClockTime -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t287)
+c_obsolete'46_'35lambda15'46_'35lambda16 x1 x2 x3 x4 x5 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_mapIO(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46isNewerThan'4686(x5)))(st))(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17(x1)(x2)(x3)(x4)))(st)
+
+
+
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17 :: (Curry t287) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO t287)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Bool) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe t287)
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17 x1 x2 x3 x4 x5 st = Curry.Module.Make.c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4(x1)(x2)(x3)(x4)(x5)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_or(st))(x5)(st))(st)
+
+
+
+c_fastReadImports :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_fastReadImports x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_readFile(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_fastReadImports'46_'35lambda18))(st)
+
+
+
+c_fastReadImports'46_'35lambda18 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_fastReadImports'46_'35lambda18 x1 st = Curry.Module.Prelude.c_return(Curry.Module.Make.c_strings(Curry.Module.Prelude.c_takeWhile(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_47_61))(Curry.Module.Prelude.C_Char(']'))))(Curry.Module.Prelude.c_dropWhile(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_47_61))(Curry.Module.Prelude.C_Char('['))))(x1)(st))(st))(st))(st)
+
+
+
+c_strings :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_strings x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_strings x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Make.c_strings_case_3(x2)(x3)(Curry.Module.Prelude.op_61_61(x2)(Curry.Module.Prelude.C_Char('\"'))(st))(st)
+c_strings (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_strings(x)(st))(i)(xs)(st)
+c_strings x st = Curry.RunTimeSystem.patternFail("Make.strings")(x)
+
+
+
+c_updateIORef :: (Curry t0) => (Curry.Module.IOExts.C_IORef t0) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_updateIORef x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.IOExts.c_readIORef(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_updateIORef'46_'35lambda20(x2)(x1)))(st)
+
+
+
+c_updateIORef'46_'35lambda20 :: (Curry t127) => (Curry.Module.Prelude.Prim (t127 -> Curry.RunTimeSystem.State -> t127)) -> (Curry.Module.IOExts.C_IORef t127) -> t127 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_updateIORef'46_'35lambda20 x1 x2 x3 st = Curry.Module.IOExts.c_writeIORef(x2)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+
+
+
+c_unless :: Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_unless x1@Curry.Module.Prelude.C_True x2 st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.T0)(st)
+c_unless x1@Curry.Module.Prelude.C_False x2 st = x2
+c_unless (Curry.Module.Prelude.C_BoolOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_unless(x)(x2)(st))(i)(xs)(st)
+c_unless x x2 st = Curry.RunTimeSystem.patternFail("Make.unless")(x)
+
+
+
+c_strings_case_3 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_strings_case_2(x3)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_break(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_61_61))(Curry.Module.Prelude.C_Char('\"'))))(st))(x3)(st))(st)
+c_strings_case_3 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_strings_case_0(x3)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_strings_case_3 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_strings_case_3(x2)(x3)(x)(st))(i)(xs)(st)
+c_strings_case_3 x2 x3 x st = Curry.RunTimeSystem.patternFail("Make.strings_case_3")(x)
+
+
+
+c_strings_case_0 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_strings(x3)(st)
+c_strings_case_0 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_strings_case_0(x3)(x)(st))(i)(xs)(st)
+c_strings_case_0 x3 x st = Curry.RunTimeSystem.patternFail("Make.strings_case_0")(x)
+
+
+
+c_strings_case_2 x3 (Curry.Module.Prelude.T2 x4 x5) st = Curry.Module.Make.c_strings_case_1(x4)(x5)(st)
+c_strings_case_2 x3 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_strings_case_2(x3)(x)(st))(i)(xs)(st)
+c_strings_case_2 x3 x st = Curry.RunTimeSystem.patternFail("Make.strings_case_2")(x)
+
+
+
+c_strings_case_1 x4 x5@((Curry.Module.Prelude.:<) x6 x7) st = (Curry.Module.Prelude.:<)(x4)(Curry.Module.Make.c_strings(x7)(st))
+c_strings_case_1 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_strings_case_1(x4)(x)(st))(i)(xs)(st)
+c_strings_case_1 x4 x st = Curry.RunTimeSystem.patternFail("Make.strings_case_1")(x)
+
+
+
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4 x1 x2 x3 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Make.c_unless(x4)))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_putStrLn))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))(x2)(st))(st))(st))(Curry.Module.Prelude.c_return(Curry.Module.Prelude.C_Nothing)(st))(st)
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4 x1 x2 x3 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Make.c_unless(x4)))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_putStrLn))(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List)))))))))))))(x2)(st))(st))(st))(Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_apply(x1)(x3)(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.pc(Curry.Module.Prelude.C_Just))(st))(st))(st)
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4 x1 x2 x3 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4(x1)(x2)(x3)(x4)(x5)(x)(st))(i)(xs)(st)
+c_obsolete'46_'35lambda15'46_'35lambda16'46_'35lambda17_case_4 x1 x2 x3 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.obsolete._#lambda15._#lambda16._#lambda17_case_4")(x)
+
+
+
+c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.C_False)(st)
+c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Directory.c_getModificationTime(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Make.c_obsolete'46isNewerThan'4686'46_'35lambda13'46_'35lambda14(x2)))(st)
+c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_obsolete'46isNewerThan'4686'46_'35lambda13_case_5 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Make.obsolete.isNewerThan.86._#lambda13_case_5")(x)
+
+
+
+c_makeWithFrontendParams'46_'35lambda4_case_6 x2 x7 x8@Curry.Module.Prelude.C_True st = x7
+c_makeWithFrontendParams'46_'35lambda4_case_6 x2 x7 x8@Curry.Module.Prelude.C_False st = (Curry.Module.Prelude.:<)(x2)(x7)
+c_makeWithFrontendParams'46_'35lambda4_case_6 x2 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_makeWithFrontendParams'46_'35lambda4_case_6(x2)(x7)(x)(st))(i)(xs)(st)
+c_makeWithFrontendParams'46_'35lambda4_case_6 x2 x7 x st = Curry.RunTimeSystem.patternFail("Make.makeWithFrontendParams._#lambda4_case_6")(x)
+
+
+
+c_parseArgs'46parse'4650_case_15 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setQuiet(Curry.Module.Prelude.C_True)(x2)(st))(x5)(st)
+c_parseArgs'46parse'4650_case_15 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_14(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('q'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List))))))))(st))(st)
+c_parseArgs'46parse'4650_case_15 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_15(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_15 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_15")(x)
+
+
+
+c_parseArgs'46parse'4650_case_14 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setQuiet(Curry.Module.Prelude.C_True)(x2)(st))(x5)(st)
+c_parseArgs'46parse'4650_case_14 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_13(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))(Curry.Module.Prelude.List)))(st))(st)
+c_parseArgs'46parse'4650_case_14 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_14(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_14 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_14")(x)
+
+
+
+c_parseArgs'46parse'4650_case_13 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setForce(Curry.Module.Prelude.C_True)(x2)(st))(x5)(st)
+c_parseArgs'46parse'4650_case_13 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_12(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))(st))(st)
+c_parseArgs'46parse'4650_case_13 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_13(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_13 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_13")(x)
+
+
+
+c_parseArgs'46parse'4650_case_12 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setForce(Curry.Module.Prelude.C_True)(x2)(st))(x5)(st)
+c_parseArgs'46parse'4650_case_12 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_11(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))(Curry.Module.Prelude.List)))(st))(st)
+c_parseArgs'46parse'4650_case_12 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_12(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_12 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_12")(x)
+
+
+
+c_parseArgs'46parse'4650_case_11 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650_case_10(x1)(x2)(x5)(st)
+c_parseArgs'46parse'4650_case_11 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_9(x1)(x2)(x4)(x5)(Curry.Module.Prelude.op_61_61(x4)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('-'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))(Curry.Module.Prelude.List)))(st))(st)
+c_parseArgs'46parse'4650_case_11 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_11(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_11 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_11")(x)
+
+
+
+c_parseArgs'46parse'4650_case_9 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_parseArgs'46parse'4650_case_8(x1)(x2)(x5)(st)
+c_parseArgs'46parse'4650_case_9 x1 x2 x4 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Make.c_parseArgs'46parse'4650_case_7(x2)(x4)(x5)(Curry.Module.Prelude.c_null(x5)(st))(st)
+c_parseArgs'46parse'4650_case_9 x1 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_9(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_9 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_9")(x)
+
+
+
+c_parseArgs'46parse'4650_case_7 x2 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Make.c_setModulename(x4)(x2)(st)
+c_parseArgs'46parse'4650_case_7 x2 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_7(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_7 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_7")(x)
+
+
+
+c_parseArgs'46parse'4650_case_8 x1 x2 x5@((Curry.Module.Prelude.:<) x8 x9) st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setMain(Curry.Module.Prelude.C_Just(x8))(x2)(st))(x9)(st)
+c_parseArgs'46parse'4650_case_8 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_8(x1)(x2)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_8 x1 x2 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_8")(x)
+
+
+
+c_parseArgs'46parse'4650_case_10 x1 x2 x5@((Curry.Module.Prelude.:<) x6 x7) st = Curry.Module.Make.c_parseArgs'46parse'4650(x1)(Curry.Module.Make.c_setOutput(Curry.Module.Prelude.C_Just(x6))(x2)(st))(x7)(st)
+c_parseArgs'46parse'4650_case_10 x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Make.c_parseArgs'46parse'4650_case_10(x1)(x2)(x)(st))(i)(xs)(st)
+c_parseArgs'46parse'4650_case_10 x1 x2 x st = Curry.RunTimeSystem.patternFail("Make.parseArgs.parse.50_case_10")(x)
+
+
diff --git a/dist/build/prophecy/prophecy-tmp/Curry/Module/Transform.hs b/dist/build/prophecy/prophecy-tmp/Curry/Module/Transform.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/prophecy/prophecy-tmp/Curry/Module/Transform.hs
@@ -0,0 +1,732 @@
+{-# OPTIONS -cpp #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Transform (module Curry.Module.Transform) where
+
+import Curry.RunTimeSystem
+import Curry.Module.AddWorld
+import Curry.Module.Directory
+import Curry.Module.Distribution
+import Curry.Module.FlatCurry
+import Curry.Module.FlatCurryGoodies
+import Curry.Module.Integer
+import Curry.Module.LiftCases
+import Curry.Module.List
+import Curry.Module.Make
+import Curry.Module.Maybe
+import Curry.Module.Prelude
+import Curry.Module.ReadShowTerm
+import Curry.Module.Wrapper
+import Curry.Module.System
+
+
+
+-- begin included
+
+
+
+-- end included
+
+type C_Options = (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Prelude.C_Bool
+
+type C_T t0 = (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) t0)
+
+c_aux2 :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_aux2 st = Curry.Module.Transform.c_main(st)
+
+
+
+c_main :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_main st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_putStrLn((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))(st))(Curry.Module.Prelude.op_62_62_61(Curry.Module.Make.c_parseArgs(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_main'46_'35lambda2))(st))(st)
+
+
+
+c_main'46_'35lambda2 :: Curry.Module.Make.C_Parameter -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_main'46_'35lambda2 x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Distribution.c_getStdLibDir(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_main'46_'35lambda2'46_'35lambda3(x1)))(st)
+
+
+
+c_main'46_'35lambda2'46_'35lambda3 :: Curry.Module.Make.C_Parameter -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_main'46_'35lambda2'46_'35lambda3 x1 x2 st = Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_maybe(Curry.Module.Prelude.c_done(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_mayCreateDirectory))(Curry.Module.Make.c_output(x1)(st))(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Transform.c_transform(x2)(Curry.Module.Make.c_force(x1)(st))(Curry.Module.Make.c_quiet(x1)(st))(Curry.Module.Make.c_output(x1)(st))(Curry.Module.Make.c_modulename(x1)(st))(st))(Curry.Module.Prelude.c_putStrLn((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))(Curry.Module.Prelude.List))))))))))))))))))))))))))))))))))(st))(st))(st)
+
+
+
+c_mayCreateDirectory :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_mayCreateDirectory x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Directory.c_doesDirectoryExist(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_mayCreateDirectory'46_'35lambda4(x1)))(st)
+
+
+
+c_mayCreateDirectory'46_'35lambda4 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_mayCreateDirectory'46_'35lambda4 x1 x2 st = Curry.Module.Make.c_unless(x2)(Curry.Module.Directory.c_createDirectory(x1)(st))(st)
+
+
+
+c_transform :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Bool -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO Curry.Module.Prelude.T0
+c_transform x1 x2 x3 x4 x5 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Make.c_make(st))(x3)(st))(x5)(st))(Curry.Module.Transform.c_transform_case_38(x1)(x3)(x4)(x2)(st))(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_writeTrans(x4)))(st)
+
+
+
+c_transform'46readTypes'4610 :: (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl)
+c_transform'46readTypes'4610 x1 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_readFile(Curry.Module.Prelude.c_head(x1)(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transform'46readTypes'4610'46_'35lambda6))(st)
+
+
+
+c_transform'46readTypes'4610'46_'35lambda6 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl)
+c_transform'46readTypes'4610'46_'35lambda6 x1 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.c_filter(Curry.Module.Transform.c_hasHOTypeArg(st))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_fst))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_head))(Curry.Module.ReadShowTerm.c_readsTerm(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_dropWhile(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_47_61))(Curry.Module.Prelude.C_Char('['))))))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_dropWhile(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_47_61))(Curry.Module.Prelude.C_Char(']'))))))(Curry.Module.Prelude.c_dropWhile(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_47_61))(Curry.Module.Prelude.C_Char('['))))(x1)(st))(st))(st))(st))(st))(st))(st))(st)
+
+
+
+c_transform'46_'35lambda7 :: (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_transform'46_'35lambda7 x1 x2 st = Curry.Module.Prelude.op_46(Curry.Module.Wrapper.c_addFcy(st))(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_addOrc(x2)(x1)))(st)
+
+
+
+c_transform'46myObsolete'4610 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl))))) -> (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl))
+c_transform'46myObsolete'4610 x1 x2 x3 x4 x5 x6 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x5)(st))(x6)(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transform'46myObsolete'4610'46_'35lambda8(x1)(x6)(x3)(x5)(x4)))(st)
+
+
+
+c_transform'46myObsolete'4610'46_'35lambda8 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl))
+c_transform'46myObsolete'4610'46_'35lambda8 x1 x2 x3 x4 x5 x6 st = Curry.Module.Transform.c_transform'46myObsolete'4610'46_'35lambda8_case_37(x1)(x2)(x3)(x4)(x5)(x6)(Curry.Module.Prelude.op_124_124(Curry.Module.Maybe.c_isJust(x6)(st))(Curry.Module.Prelude.op_124_124(Curry.Module.Maybe.c_isJust(x3)(st))(Curry.Module.Prelude.c_not(Curry.Module.List.c_isPrefixOf(x1)(x4)(st))(st))(st))(st))(st)
+
+
+
+c_transform'46myObsolete'4610'46_'35lambda8'46_'35lambda9 :: (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl))
+c_transform'46myObsolete'4610'46_'35lambda8'46_'35lambda9 x1 st = Curry.Module.Prelude.c_return(Curry.Module.Prelude.C_Just(x1))(st)
+
+
+
+c_transform'46_'35lambda5 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl))
+c_transform'46_'35lambda5 x1 x2 st = Curry.Module.Prelude.op_62_62_61(Curry.Module.Transform.c_transform'46readTypes'4610((Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List))(st))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_return))(Curry.Module.Prelude.pc(Curry.Module.Prelude.C_Just))(st))(st)
+
+
+
+c_writeTrans :: (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl)) -> Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_IO (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl)
+c_writeTrans x1 x2 x3 x4 st = let {x5 = Curry.Module.Wrapper.c_addOrc(x2)(x1)(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_progName(st))(x4)(st))(st)} in let {x6 = Curry.Module.Transform.c_transProg(Curry.Module.Prelude.c_concat(x3)(st))(Curry.Module.LiftCases.c_liftCases(Curry.Module.Prelude.C_False)(x4)(st))(st)} in let {x9 = Curry.Module.Prelude.c_show(Curry.Module.Transform.c_writeTrans'46_'35selFP4'35trProg(x6)(st))(st)} in Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_putStrLn(Curry.Module.Prelude.op_43_43((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))(Curry.Module.Prelude.List))))))))))))(x5)(st))(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_writeFile(Curry.Module.Prelude.op_43_43(x5)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))(st))(x9)(st))(Curry.Module.Prelude.op_62_62(Curry.Module.Prelude.c_writeFile(Curry.Module.Prelude.op_43_43(x5)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List))))))(st))(x9)(st))(Curry.Module.Prelude.c_return(Curry.Module.Transform.c_writeTrans'46_'35selFP3'35trTypes(x6)(st))(st))(st))(st))(st)
+
+
+
+c_writeTrans'46_'35selFP3'35trTypes :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) Curry.Module.FlatCurry.C_Prog) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl
+c_writeTrans'46_'35selFP3'35trTypes x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_writeTrans'46_'35selFP3'35trTypes (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_writeTrans'46_'35selFP3'35trTypes(x)(st))(i)(xs)(st)
+c_writeTrans'46_'35selFP3'35trTypes x st = Curry.RunTimeSystem.patternFail("Transform.writeTrans._#selFP3#trTypes")(x)
+
+
+
+c_writeTrans'46_'35selFP4'35trProg :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) Curry.Module.FlatCurry.C_Prog) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Prog
+c_writeTrans'46_'35selFP4'35trProg x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_writeTrans'46_'35selFP4'35trProg (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_writeTrans'46_'35selFP4'35trProg(x)(st))(i)(xs)(st)
+c_writeTrans'46_'35selFP4'35trProg x st = Curry.RunTimeSystem.patternFail("Transform.writeTrans._#selFP4#trProg")(x)
+
+
+
+c_transProg :: (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) -> Curry.Module.FlatCurry.C_Prog -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) Curry.Module.FlatCurry.C_Prog
+c_transProg x1 x2 st = let {x4 = Curry.Module.List.c_partition(Curry.Module.Transform.c_hasHOTypeArg(st))(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_progTypes(st))(x2)(st))(st)} in let {x7 = Curry.Module.Prelude.c_fst(Curry.Module.Transform.c_transProg'46fixDependence'4633(Curry.Module.Prelude.op_43_43(Curry.Module.Transform.c_transProg'46_'35selFP6'35withHo(x4)(st))(x1)(st))(Curry.Module.Transform.c_transProg'46_'35selFP7'35noHo(x4)(st))(st))(st)} in Curry.Module.Prelude.T2(x7)(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updProg(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_newModName))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transProg'46_'35lambda15(x2)))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transType(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transProg'46isTrType'4633(x7)))))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transProg'46isTrType'4633(x7)))(Curry.Module.FlatCurryGoodies.c_typeName(st))(st))))(st))(Curry.Module.Prelude.c_concatMap(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transFunc(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transProg'46isTrType'4633(x7)))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transProg'46isTrCons'4633(x7)))))(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.FlatCurryGoodies.c_updOpName(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_newModNameQ))(st))))(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_rnmAllVarsInProg(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_43))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))))(st))(Curry.Module.Prelude.c_apply(Curry.Module.AddWorld.c_addWorld(st))(x2)(st))(st))(st))
+
+
+
+c_transProg'46_'35selFP6'35withHo :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl
+c_transProg'46_'35selFP6'35withHo x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_transProg'46_'35selFP6'35withHo (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transProg'46_'35selFP6'35withHo(x)(st))(i)(xs)(st)
+c_transProg'46_'35selFP6'35withHo x st = Curry.RunTimeSystem.patternFail("Transform.transProg._#selFP6#withHo")(x)
+
+
+
+c_transProg'46_'35selFP7'35noHo :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl
+c_transProg'46_'35selFP7'35noHo x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_transProg'46_'35selFP7'35noHo (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transProg'46_'35selFP7'35noHo(x)(st))(i)(xs)(st)
+c_transProg'46_'35selFP7'35noHo x st = Curry.RunTimeSystem.patternFail("Transform.transProg._#selFP7#noHo")(x)
+
+
+
+c_transProg'46containsTypes'4633 :: (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_TypeExpr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_transProg'46containsTypes'4633 x1 st = Curry.Module.Prelude.pf(Curry.Module.FlatCurryGoodies.c_trTypeExpr(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transProg'46containsTypes'4633'46_'35lambda13))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Transform.c_transProg'46containsTypes'4633'46_'35lambda14(x1)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_124_124)))
+
+
+
+c_transProg'46containsTypes'4633'46_'35lambda13 :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transProg'46containsTypes'4633'46_'35lambda13 x1 st = Curry.Module.Prelude.C_False
+
+
+
+c_transProg'46containsTypes'4633'46_'35lambda14 :: (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))) -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Bool) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transProg'46containsTypes'4633'46_'35lambda14 x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_or(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(x2)(st))(x1)(st))(x3))(st)
+
+
+
+c_transProg'46dependsOnTypes'4633 :: (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_TypeDecl -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_transProg'46dependsOnTypes'4633 x1 st = Curry.Module.Prelude.pf(Curry.Module.FlatCurryGoodies.c_trType(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_transProg'46dependsOnTypes'4633'46_'35lambda11(x1)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_transProg'46dependsOnTypes'4633'46_'35lambda12(x1))))
+
+
+
+c_transProg'46dependsOnTypes'4633'46_'35lambda11 :: (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))) -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.FlatCurry.C_Visibility -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_ConsDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_transProg'46dependsOnTypes'4633'46_'35lambda11 x1 x2 x3 x4 st = Curry.Module.Prelude.c_any(Curry.Module.Prelude.op_46(Curry.Module.Prelude.c_any(Curry.Module.Transform.c_transProg'46containsTypes'4633(x1)(st))(st))(Curry.Module.FlatCurryGoodies.c_consArgs(st))(st))(st)
+
+
+
+c_transProg'46dependsOnTypes'4633'46_'35lambda12 :: (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))) -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.FlatCurry.C_Visibility -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_TypeExpr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_transProg'46dependsOnTypes'4633'46_'35lambda12 x1 x2 x3 x4 st = Curry.Module.Transform.c_transProg'46containsTypes'4633(x1)(st)
+
+
+
+c_transProg'46fixDependence'4633 :: (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl)
+c_transProg'46fixDependence'4633 x1 x2 st = Curry.Module.Transform.c_transProg'46fixDependence'4633_case_36(x1)(x2)(Curry.Module.List.c_partition(Curry.Module.Transform.c_transProg'46dependsOnTypes'4633(Curry.Module.Prelude.c_map(Curry.Module.FlatCurryGoodies.c_typeName(st))(x1)(st))(st))(x2)(st))(st)
+
+
+
+c_transProg'46isTrType'4633 :: (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transProg'46isTrType'4633 x1 x2 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.c_elem(x2)(st))(Curry.Module.Prelude.c_map(Curry.Module.FlatCurryGoodies.c_typeName(st))(x1)(st))(st)
+
+
+
+c_transProg'46isTrCons'4633 :: (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_TypeDecl) -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transProg'46isTrCons'4633 x1 x2 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.c_elem(x2)(st))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.FlatCurryGoodies.c_consName(st))))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.c_concatMap(Curry.Module.FlatCurryGoodies.c_typeConsDecls(st))(st))(Curry.Module.Prelude.c_filter(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_not))(Curry.Module.FlatCurryGoodies.c_isTypeSyn(st))(st))(x1)(st))(st))(st))(st)
+
+
+
+c_transProg'46_'35lambda15 :: Curry.Module.FlatCurry.C_Prog -> (Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_transProg'46_'35lambda15 x1 x2 st = (Curry.Module.Prelude.:<)(Curry.Module.Wrapper.c_eventMod(st))((Curry.Module.Prelude.:<)(Curry.Module.Wrapper.c_oracle(st))((Curry.Module.Prelude.:<)(Curry.Module.Wrapper.c_ioexts(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_progName(st))(x1)(st))(Curry.Module.Prelude.op_43_43(x2)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_newModName))(x2)(st))(st)))))
+
+
+
+c_hasHOTypeArg :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_TypeDecl -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)
+c_hasHOTypeArg st = Curry.Module.Prelude.pf(Curry.Module.FlatCurryGoodies.c_trType(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.Transform.c_hasHOTypeArg'46_'35lambda16))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.Transform.c_hasHOTypeArg'46_'35lambda17)))
+
+
+
+c_hasHOTypeArg'46_'35lambda16 :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.FlatCurry.C_Visibility -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_ConsDecl) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_hasHOTypeArg'46_'35lambda16 x1 x2 x3 x4 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_any(Curry.Module.FlatCurryGoodies.c_isFuncType(st))(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_concatMap(Curry.Module.FlatCurryGoodies.c_consArgs(st))(st))(x4)(st))(st)
+
+
+
+c_hasHOTypeArg'46_'35lambda17 :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.FlatCurry.C_Visibility -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.FlatCurry.C_TypeExpr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_hasHOTypeArg'46_'35lambda17 x1 x2 x3 x4 st = Curry.Module.Prelude.C_False
+
+
+
+c_transType :: (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.Module.FlatCurry.C_TypeDecl -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_TypeDecl
+c_transType x1 x2 st = Curry.Module.Transform.c_transType_case_34(x1)(x2)(Curry.Module.Prelude.c_apply(x1)(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_typeName(st))(x2)(st))(st))(st)
+
+
+
+c_when :: (Curry t0) => (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> t0)) -> t0 -> Curry.RunTimeSystem.State -> t0
+c_when x1 x2 x3 st = Curry.Module.Transform.c_when_case_32(x1)(x2)(x3)(Curry.Module.Prelude.c_apply(x1)(x3)(st))(st)
+
+
+
+c_rType :: (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.Module.FlatCurry.C_TypeExpr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_TypeExpr
+c_rType x1 x2@(Curry.Module.FlatCurry.C_TVar x3) st = x2
+c_rType x1 x2@(Curry.Module.FlatCurry.C_TCons x4 x5) st = Curry.Module.FlatCurry.C_TCons(Curry.Module.Transform.c_when(x1)(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_newModNameQ))(x4)(st))(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Transform.c_rType(x1)))(x5)(st))
+c_rType x1 x2@(Curry.Module.FlatCurry.C_FuncType x6 x7) st = Curry.Module.FlatCurry.C_FuncType(Curry.Module.Wrapper.c_tRef(st))(Curry.Module.FlatCurry.C_FuncType(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updQNamesInTypeExpr(Curry.Module.Prelude.pf(Curry.Module.Transform.c_when(x1)(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_newModNameQ))))(st))(Curry.Module.Transform.c_rType(x1)(x6)(st))(st))(Curry.Module.Transform.c_rType(x1)(x7)(st)))
+c_rType x1 (Curry.Module.FlatCurry.C_TypeExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_rType(x1)(x)(st))(i)(xs)(st)
+c_rType x1 x st = Curry.RunTimeSystem.patternFail("Transform.rType")(x)
+
+
+
+c_transFunc :: (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.Module.FlatCurry.C_FuncDecl -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_FuncDecl
+c_transFunc x1 x2 x3@(Curry.Module.FlatCurry.C_Func x4 x5 x6 x7 x8) st = let {x9 = Curry.Module.FlatCurryGoodies.c_resultType(x7)(st)} in let {x10 = Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_allVarsInFunc(st))(x3)(st)} in let {x12 = Curry.Module.Prelude.c_enumFromTo(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(Curry.Module.Prelude.op_43(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)} in let {x13 = Curry.Module.Wrapper.c_newModNameQ(x4)(st)} in Curry.Module.Transform.c_transFunc_case_31(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x9)(x10)(x12)(x13)(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x4)(Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('G'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))(Curry.Module.Prelude.List)))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))(Curry.Module.Prelude.List))))))))(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(x4)(st))(Curry.Module.Wrapper.c_implementedInOracle(st))(st))(st))(st)
+c_transFunc x1 x2 (Curry.Module.FlatCurry.C_FuncDeclOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc(x1)(x2)(x)(st))(i)(xs)(st)
+c_transFunc x1 x2 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc")(x)
+
+
+
+c_transFunc'46isIO'4689 :: Curry.Module.FlatCurry.C_TypeExpr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transFunc'46isIO'4689 x1 st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_isTCons(st))(x1)(st))(Curry.Module.Prelude.op_61_61(Curry.Module.FlatCurryGoodies.c_tConsName(x1)(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('I'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))(Curry.Module.Prelude.List))))(st))(st)
+
+
+
+c_transFunc'46isComplexIO'4689 :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.FlatCurry.C_TypeExpr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transFunc'46isComplexIO'4689 x1 x2@(Curry.Module.FlatCurry.C_TVar x3) st = Curry.Module.Prelude.C_False
+c_transFunc'46isComplexIO'4689 x1 x2@(Curry.Module.FlatCurry.C_TCons x4 x5) st = Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.op_47_61(x5)((Curry.Module.Prelude.:<)(Curry.Module.FlatCurry.C_TCons(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('('))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(')'))(Curry.Module.Prelude.List))))(Curry.Module.Prelude.List))(Curry.Module.Prelude.List))(st))(Curry.Module.Prelude.c_not(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(x1)(st))(Curry.Module.Wrapper.c_specialIOs(st))(st))(st))(st)
+c_transFunc'46isComplexIO'4689 x1 (Curry.Module.FlatCurry.C_TypeExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc'46isComplexIO'4689(x1)(x)(st))(i)(xs)(st)
+c_transFunc'46isComplexIO'4689 x1 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc.isComplexIO.89")(x)
+
+
+
+c_transFunc'46isGlobal'4689 :: Curry.Module.FlatCurry.C_FuncDecl -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transFunc'46isGlobal'4689 x1 st = Curry.Module.Transform.c_transFunc'46isGlobal'4689_case_20(x1)(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_funcBody(st))(x1)(st))(st)
+
+
+
+c_transFunc'46extCall'4689 :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_transFunc'46extCall'4689 x1 x2 st = Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_FuncCall)(x1)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Var))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(Curry.Module.Prelude.c_tail(Curry.Module.Prelude.c_enumFromTo(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(x2)(st))(st))(st))(st))
+
+
+
+c_transFunc'46_'35lambda19 :: Curry.Module.FlatCurry.C_CombType -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Bool) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transFunc'46_'35lambda19 x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_and(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_isCombTypeConsCall(st))(x1)(st))(x3))(st)
+
+
+
+c_transFunc'46_'35lambda20 :: (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.Prelude.C_Bool)) -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transFunc'46_'35lambda20 x1 x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_and(st))((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(x1)(st)))(st)
+
+
+
+c_transFunc'46_'35lambda21 :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transFunc'46_'35lambda21 x1 x2 st = x2
+
+
+
+c_transFunc'46_'35lambda22 :: Curry.Module.FlatCurry.C_CaseType -> Curry.Module.Prelude.C_Bool -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Bool) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transFunc'46_'35lambda22 x1 x2 x3 st = Curry.Module.Prelude.C_False
+
+
+
+c_transFunc'46_'35lambda23 :: Curry.Module.FlatCurry.C_Pattern -> Curry.Module.Prelude.C_Bool -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool
+c_transFunc'46_'35lambda23 x1 x2 st = Curry.Module.Prelude.C_False
+
+
+
+c_transFuncType :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.Module.FlatCurry.C_TypeExpr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_TypeExpr
+c_transFuncType x1 x2 x3@(Curry.Module.FlatCurry.C_TVar x4) st = Curry.Module.Transform.c_transFuncType_case_15(x1)(x2)(x3)(x4)(Curry.Module.Prelude.op_124_124(Curry.Module.Prelude.op_61_61(x4)(Curry.Module.Prelude.c_negate(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))))))(st))(st))(Curry.Module.Prelude.op_47_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st))(st)
+c_transFuncType x1 x2 x3@(Curry.Module.FlatCurry.C_TCons x5 x6) st = Curry.Module.Transform.c_transFuncType_case_14(x2)(x3)(x1)(st)
+c_transFuncType x1 x2 x3@(Curry.Module.FlatCurry.C_FuncType x7 x8) st = Curry.Module.Transform.c_transFuncType_case_13(x1)(x2)(x3)(x7)(x8)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+c_transFuncType x1 x2 (Curry.Module.FlatCurry.C_TypeExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFuncType(x1)(x2)(x)(st))(i)(xs)(st)
+c_transFuncType x1 x2 x st = Curry.RunTimeSystem.patternFail("Transform.transFuncType")(x)
+
+
+
+c_transExpr :: (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.Module.FlatCurry.C_Expr -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T3 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) Curry.Module.FlatCurry.C_Expr)
+c_transExpr x1 x2 x3 st = Curry.Module.Transform.c_transExpr_case_11(x1)(x2)(x3)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_trExpr(Curry.Module.Prelude.pf(Curry.Module.Transform.c_var))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_lit))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_comb))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Transform.c_leT))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Transform.c_freE))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Transform.c_oR))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_casE))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))))))(Curry.Module.Transform.c_branch))(x2)(st))(x1)(st))(x3)(st))((Curry.Module.Prelude.:<)(Curry.Module.Wrapper.c_ref(st))(Curry.Module.Prelude.List))(st))(st)
+
+
+
+c_ret :: (Curry t0) => t0 -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) t0)
+c_ret x1 x2 x3 x4 st = Curry.Module.Prelude.C_Right(Curry.Module.Prelude.T4(x3)(x4)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(x1))
+
+
+
+op_46_62_62_61 :: (Curry t0,Curry t1) => (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) t0))))) -> (Curry.Module.Prelude.Prim (t0 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) t1)))))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) t1)
+op_46_62_62_61 x1 x2 x3 x4 x5 st = Curry.Module.Transform.c_'46'62'62'61_case_9(x1)(x2)(x3)(x4)(x5)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x1)(x3)(st))(x4)(st))(x5)(st))(st)
+
+
+
+c_sequence :: (Curry t0) => (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) t0)))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) (Curry.Module.Prelude.List t0)))))
+c_sequence x1@Curry.Module.Prelude.List st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_ret(Curry.Module.Prelude.List))
+c_sequence x1@((Curry.Module.Prelude.:<) x2 x3) st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(x2)(Curry.Module.Prelude.pf(Curry.Module.Transform.c_sequence'46_'35lambda28(x3))))
+c_sequence (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_sequence(x)(st))(i)(xs)(st)
+c_sequence x st = Curry.RunTimeSystem.patternFail("Transform.sequence")(x)
+
+
+
+c_sequence'46_'35lambda28 :: (Curry t149) => (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) t149)))))) -> t149 -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) (Curry.Module.Prelude.List t149)))))
+c_sequence'46_'35lambda28 x1 x2 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Transform.c_sequence(x1)(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_sequence'46_'35lambda28'46_'35lambda29(x2))))
+
+
+
+c_sequence'46_'35lambda28'46_'35lambda29 :: (Curry t149) => t149 -> (Curry.Module.Prelude.List t149) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) (Curry.Module.Prelude.List t149)))))
+c_sequence'46_'35lambda28'46_'35lambda29 x1 x2 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_ret((Curry.Module.Prelude.:<)(x1)(x2)))
+
+
+
+c_nextRef :: (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.Prelude.C_Int)
+c_nextRef x1 x2 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_Right(Curry.Module.Prelude.T4(Curry.Module.Prelude.op_43(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Prelude.List)(Curry.Module.Prelude.pc((Curry.Module.Prelude.:<)(x2)))(x2))
+c_nextRef x1 x2 x3@((Curry.Module.Prelude.:<) x4 x5) st = Curry.Module.Prelude.C_Right(Curry.Module.Prelude.T4(x2)(x5)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(x4))
+c_nextRef x1 x2 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_nextRef(x1)(x2)(x)(st))(i)(xs)(st)
+c_nextRef x1 x2 x st = Curry.RunTimeSystem.patternFail("Transform.nextRef")(x)
+
+
+
+c_renameCons :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)))))
+c_renameCons x1 x2 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Transform.c_ret(Curry.Module.Transform.c_when(x2)(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_newModNameQ))(x1)(st))(x2))
+
+
+
+c_var :: Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_var x1 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_ret(Curry.Module.FlatCurry.C_Var(x1)))
+
+
+
+c_lit :: Curry.Module.FlatCurry.C_Literal -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_lit x1 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_ret(Curry.Module.FlatCurry.C_Lit(x1)))
+
+
+
+c_comb :: Curry.Module.FlatCurry.C_CombType -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr)))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_comb x1@Curry.Module.FlatCurry.C_ConsCall x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Transform.c_sequence(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_comb'46_'35lambda30(x1)(x2))))
+c_comb x1@(Curry.Module.FlatCurry.C_ConsPartCall x4) x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Transform.c_sequence(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_comb'46_'35lambda32(x1)(x4)(x2))))
+c_comb x1@Curry.Module.FlatCurry.C_FuncCall x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Transform.c_sequence(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_comb'46_'35lambda34(x1)(x2))))
+c_comb x1@(Curry.Module.FlatCurry.C_FuncPartCall x5) x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Transform.c_sequence(x3)(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_comb'46_'35lambda36(x5)(x2)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pc))(Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_FuncPartCall(Curry.Module.Prelude.op_43(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))))))))
+c_comb (Curry.Module.FlatCurry.C_CombTypeOr i xs) x2 x3 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_comb(x)(x2)(x3)(st))(i)(xs)(st)
+c_comb x x2 x3 st = Curry.RunTimeSystem.patternFail("Transform.comb")(x)
+
+
+
+c_comb'46_'35lambda30 :: Curry.Module.FlatCurry.C_CombType -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_comb'46_'35lambda30 x1 x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Prelude.pf(Curry.Module.Transform.c_renameCons(x2)))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_comb'46_'35lambda30'46_'35lambda31(x3)(x1))))
+
+
+
+c_comb'46_'35lambda30'46_'35lambda31 :: (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.Module.FlatCurry.C_CombType -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_comb'46_'35lambda30'46_'35lambda31 x1 x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_ret(Curry.Module.FlatCurry.C_Comb(x2)(x3)(x1)))
+
+
+
+c_comb'46_'35lambda32 :: Curry.Module.FlatCurry.C_CombType -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_comb'46_'35lambda32 x1 x2 x3 x4 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Prelude.pf(Curry.Module.Transform.c_renameCons(x3)))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_comb'46_'35lambda32'46_'35lambda33(x4)(x1)(x2))))
+
+
+
+c_comb'46_'35lambda32'46_'35lambda33 :: (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.Module.FlatCurry.C_CombType -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_comb'46_'35lambda32'46_'35lambda33 x1 x2 x3 x4 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_ret(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_partCons(st))(x3)(st))(Curry.Module.FlatCurry.C_Comb(x2)(x4)(x1))(st)))
+
+
+
+c_comb'46_'35lambda34 :: Curry.Module.FlatCurry.C_CombType -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_comb'46_'35lambda34 x1 x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_nextRef))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_comb'46_'35lambda34'46_'35lambda35(x3)(x1)(x2))))
+
+
+
+c_comb'46_'35lambda34'46_'35lambda35 :: (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.Module.FlatCurry.C_CombType -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_comb'46_'35lambda34'46_'35lambda35 x1 x2 x3 x4 st = let {x5 = Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(Curry.Module.FlatCurry.C_Var(x4))(Curry.Module.Prelude.List))(st)} in Curry.Module.Transform.c_comb'46_'35lambda34'46_'35lambda35_case_5(x2)(x3)(x5)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(x3)(st))(Curry.Module.Wrapper.c_implementedInOracle(st))(st))(st)
+
+
+
+c_comb'46_'35lambda36 :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr))) -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_comb'46_'35lambda36 x1 x2 x3 x4 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.Transform.c_ret))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_partFunc(st))(x1)(st))(Curry.Module.Transform.c_comb'46_'35lambda36_case_4(x2)(x3)(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_elem(x2)(st))(Curry.Module.Wrapper.c_implementedInOracle(st))(st))(st))(st))(st)
+
+
+
+c_leT :: (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_leT x1 x2 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Transform.c_sequence(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_snd))(x1)(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_leT'46_'35lambda37(x1)(x2))))
+
+
+
+c_leT'46_'35lambda37 :: (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))) -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_leT'46_'35lambda37 x1 x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_nextRef))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.Transform.c_leT'46_'35lambda37'46_'35lambda38(x3)(x1)(x2))))
+
+
+
+c_leT'46_'35lambda37'46_'35lambda38 :: (Curry t150,Curry t151,Curry t152) => (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List t150) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List t151) (Curry.Module.Prelude.Prim (t152 -> Curry.RunTimeSystem.State -> t152)) Curry.Module.FlatCurry.C_Expr)
+c_leT'46_'35lambda37'46_'35lambda38 x1 x2 x3 x4 x5 x6 x7@Curry.Module.Prelude.List st = Curry.Module.Transform.c_leT'46_'35lambda37'46_'35lambda38_case_3(x1)(x2)(x3)(x4)(x5)(x6)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x3)(x5)(st))(x6)(st))((Curry.Module.Prelude.:<)(x4)(Curry.Module.Prelude.List))(st))(st)
+c_leT'46_'35lambda37'46_'35lambda38 x1 x2 x3 x4 x5 x6 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_leT'46_'35lambda37'46_'35lambda38(x1)(x2)(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_leT'46_'35lambda37'46_'35lambda38 x1 x2 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("Transform.leT._#lambda37._#lambda38")(x)
+
+
+
+c_freE :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_freE x1 x2 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Transform.c_sequence(Curry.Module.Prelude.c_replicate(Curry.Module.Prelude.c_length(x1)(st))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_nextRef))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))))(Curry.Module.Transform.c_ret))(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_unknown))(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Var))(st))(st))))(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_freE'46_'35lambda40(x2)(x1))))
+
+
+
+c_freE'46_'35lambda40 :: (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_freE'46_'35lambda40 x1 x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(x1)(Curry.Module.Prelude.pf(Curry.Module.Transform.c_freE'46_'35lambda40'46_'35lambda41(x3)(x2))))
+
+
+
+c_freE'46_'35lambda40'46_'35lambda41 :: (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_freE'46_'35lambda40'46_'35lambda41 x1 x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_ret(Curry.Module.FlatCurry.C_Let(Curry.Module.Prelude.c_zip(x2)(x1)(st))(x3)))
+
+
+
+c_oR :: (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))) -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_oR x1 x2 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(x1)(Curry.Module.Prelude.pf(Curry.Module.Transform.c_oR'46_'35lambda42(x2))))
+
+
+
+c_oR'46_'35lambda42 :: (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))) -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_oR'46_'35lambda42 x1 x2 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(x1)(Curry.Module.Prelude.pf(Curry.Module.Transform.c_oR'46_'35lambda42'46_'35lambda43(x2))))
+
+
+
+c_oR'46_'35lambda42'46_'35lambda43 :: Curry.Module.FlatCurry.C_Expr -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_oR'46_'35lambda42'46_'35lambda43 x1 x2 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_ret(Curry.Module.FlatCurry.C_Or(x1)(x2)))
+
+
+
+c_casE :: Curry.Module.FlatCurry.C_CaseType -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))) -> (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_BranchExpr))))))) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_casE x1 x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(x2)(Curry.Module.Prelude.pf(Curry.Module.Transform.c_casE'46_'35lambda44(x1)(x3))))
+
+
+
+c_casE'46_'35lambda44 :: Curry.Module.FlatCurry.C_CaseType -> (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_BranchExpr))))))) -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_casE'46_'35lambda44 x1 x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_nextRef))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_casE'46_'35lambda44'46_'35lambda45(x1)(x3)(x2))))
+
+
+
+c_casE'46_'35lambda44'46_'35lambda45 :: Curry.Module.FlatCurry.C_CaseType -> Curry.Module.FlatCurry.C_Expr -> (Curry.Module.Prelude.List (Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_BranchExpr))))))) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_casE'46_'35lambda44'46_'35lambda45 x1 x2 x3 x4 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.op_46_62_62_61(Curry.Module.Transform.c_sequence(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_36))(x4)))(x3)(st))(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_casE'46_'35lambda44'46_'35lambda45'46_'35lambda46(x1)(x2))))
+
+
+
+c_casE'46_'35lambda44'46_'35lambda45'46_'35lambda46 :: Curry.Module.FlatCurry.C_CaseType -> Curry.Module.FlatCurry.C_Expr -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_BranchExpr) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))
+c_casE'46_'35lambda44'46_'35lambda45'46_'35lambda46 x1 x2 x3 st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_ret(Curry.Module.FlatCurry.C_Case(x1)(x2)(x3)))
+
+
+
+c_branch :: Curry.Module.FlatCurry.C_Pattern -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_Expr))))) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Bool)) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Either (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.T4 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Int)) Curry.Module.FlatCurry.C_BranchExpr)
+c_branch x1 x2 x3 x4 x5 x6@Curry.Module.Prelude.List st = Curry.Module.Transform.c_branch_case_1(x1)(x2)(x3)(x4)(x5)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x4)(st))(x5)(st))((Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.List))(st))(st)
+c_branch x1 x2 x3 x4 x5 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_branch(x1)(x2)(x3)(x4)(x5)(x)(st))(i)(xs)(st)
+c_branch x1 x2 x3 x4 x5 x st = Curry.RunTimeSystem.patternFail("Transform.branch")(x)
+
+
+
+c_branch_case_1 x1 x2 x3 x4 x5 x6@(Curry.Module.Prelude.C_Right x7) st = Curry.Module.Transform.c_branch_case_0(x1)(x3)(x4)(x7)(st)
+c_branch_case_1 x1 x2 x3 x4 x5 x6@(Curry.Module.Prelude.C_Left x12) st = Curry.Module.Prelude.C_Left(x12)
+c_branch_case_1 x1 x2 x3 x4 x5 (Curry.Module.Prelude.C_EitherOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_branch_case_1(x1)(x2)(x3)(x4)(x5)(x)(st))(i)(xs)(st)
+c_branch_case_1 x1 x2 x3 x4 x5 x st = Curry.RunTimeSystem.patternFail("Transform.branch_case_1")(x)
+
+
+
+c_branch_case_0 x1 x3 x4 x7@(Curry.Module.Prelude.T4 x8 x9 x10 x11) st = Curry.Module.Prelude.C_Right(Curry.Module.Prelude.T4(x8)(Curry.Module.Prelude.List)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.FlatCurry.C_Branch(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updPatCons(Curry.Module.Prelude.pf(Curry.Module.Transform.c_when(x4)(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_newModNameQ))))(st))(x1)(st))(Curry.Module.Wrapper.c_event(x9)(x3)(Curry.Module.Prelude.c_apply(x10)(Curry.Module.Prelude.List)(st))(x11)(st))))
+c_branch_case_0 x1 x3 x4 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_branch_case_0(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_branch_case_0 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("Transform.branch_case_0")(x)
+
+
+
+c_leT'46_'35lambda37'46_'35lambda38_case_3 x1 x2 x3 x4 x5 x6 x7@(Curry.Module.Prelude.C_Right x8) st = Curry.Module.Transform.c_leT'46_'35lambda37'46_'35lambda38_case_2(x1)(x2)(x4)(x8)(st)
+c_leT'46_'35lambda37'46_'35lambda38_case_3 x1 x2 x3 x4 x5 x6 x7@(Curry.Module.Prelude.C_Left x14) st = Curry.Module.Prelude.C_Left(x14)
+c_leT'46_'35lambda37'46_'35lambda38_case_3 x1 x2 x3 x4 x5 x6 (Curry.Module.Prelude.C_EitherOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_leT'46_'35lambda37'46_'35lambda38_case_3(x1)(x2)(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_leT'46_'35lambda37'46_'35lambda38_case_3 x1 x2 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("Transform.leT._#lambda37._#lambda38_case_3")(x)
+
+
+
+c_leT'46_'35lambda37'46_'35lambda38_case_2 x1 x2 x4 x8@(Curry.Module.Prelude.T4 x9 x10 x11 x12) st = Curry.Module.Prelude.C_Right(Curry.Module.Prelude.T4(x9)(Curry.Module.Prelude.List)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.FlatCurry.C_Let(Curry.Module.Prelude.c_zip(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_fst))(x2)(st))(x1)(st))(Curry.Module.Wrapper.c_event(x10)(x4)(Curry.Module.Prelude.c_apply(x11)(Curry.Module.Prelude.List)(st))(x12)(st))))
+c_leT'46_'35lambda37'46_'35lambda38_case_2 x1 x2 x4 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_leT'46_'35lambda37'46_'35lambda38_case_2(x1)(x2)(x4)(x)(st))(i)(xs)(st)
+c_leT'46_'35lambda37'46_'35lambda38_case_2 x1 x2 x4 x st = Curry.RunTimeSystem.patternFail("Transform.leT._#lambda37._#lambda38_case_2")(x)
+
+
+
+c_comb'46_'35lambda36_case_4 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_inOraclePartCall(Curry.Module.Prelude.c_snd(x2)(st))(st))(x4)(st)
+c_comb'46_'35lambda36_case_4 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x3)(Curry.Module.Wrapper.c_newModNameQ(x2)(st))(st))(x4)(st)
+c_comb'46_'35lambda36_case_4 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_comb'46_'35lambda36_case_4(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_comb'46_'35lambda36_case_4 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Transform.comb._#lambda36_case_4")(x)
+
+
+
+c_comb'46_'35lambda34'46_'35lambda35_case_5 x2 x3 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_ret(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_inOraclePartCall(Curry.Module.Prelude.c_snd(x3)(st))(st))(x5)(st)))
+c_comb'46_'35lambda34'46_'35lambda35_case_5 x2 x3 x5 x6@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_ret(Curry.Module.FlatCurry.C_Comb(x2)(Curry.Module.Wrapper.c_newModNameQ(x3)(st))(x5)))
+c_comb'46_'35lambda34'46_'35lambda35_case_5 x2 x3 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_comb'46_'35lambda34'46_'35lambda35_case_5(x2)(x3)(x5)(x)(st))(i)(xs)(st)
+c_comb'46_'35lambda34'46_'35lambda35_case_5 x2 x3 x5 x st = Curry.RunTimeSystem.patternFail("Transform.comb._#lambda34._#lambda35_case_5")(x)
+
+
+
+c_'46'62'62'61_case_9 x1 x2 x3 x4 x5 (Curry.Module.Prelude.C_Right x6) st = Curry.Module.Transform.c_'46'62'62'61_case_8(x2)(x3)(x6)(st)
+c_'46'62'62'61_case_9 x1 x2 x3 x4 x5 x6@(Curry.Module.Prelude.C_Left x17) st = Curry.Module.Prelude.C_Left(x17)
+c_'46'62'62'61_case_9 x1 x2 x3 x4 x5 (Curry.Module.Prelude.C_EitherOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_'46'62'62'61_case_9(x1)(x2)(x3)(x4)(x5)(x)(st))(i)(xs)(st)
+c_'46'62'62'61_case_9 x1 x2 x3 x4 x5 x st = Curry.RunTimeSystem.patternFail("Transform..>>=_case_9")(x)
+
+
+
+c_'46'62'62'61_case_8 x2 x3 x6@(Curry.Module.Prelude.T4 x7 x8 x9 x10) st = Curry.Module.Transform.c_'46'62'62'61_case_7(x2)(x3)(x7)(x8)(x9)(x10)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(x2)(x10)(st))(x3)(st))(x7)(st))(x8)(st))(st)
+c_'46'62'62'61_case_8 x2 x3 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_'46'62'62'61_case_8(x2)(x3)(x)(st))(i)(xs)(st)
+c_'46'62'62'61_case_8 x2 x3 x st = Curry.RunTimeSystem.patternFail("Transform..>>=_case_8")(x)
+
+
+
+c_'46'62'62'61_case_7 x2 x3 x7 x8 x9 x10 (Curry.Module.Prelude.C_Right x11) st = Curry.Module.Transform.c_'46'62'62'61_case_6(x9)(x11)(st)
+c_'46'62'62'61_case_7 x2 x3 x7 x8 x9 x10 x11@(Curry.Module.Prelude.C_Left x16) st = Curry.Module.Prelude.C_Left(x16)
+c_'46'62'62'61_case_7 x2 x3 x7 x8 x9 x10 (Curry.Module.Prelude.C_EitherOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_'46'62'62'61_case_7(x2)(x3)(x7)(x8)(x9)(x10)(x)(st))(i)(xs)(st)
+c_'46'62'62'61_case_7 x2 x3 x7 x8 x9 x10 x st = Curry.RunTimeSystem.patternFail("Transform..>>=_case_7")(x)
+
+
+
+c_'46'62'62'61_case_6 x9 x11@(Curry.Module.Prelude.T4 x12 x13 x14 x15) st = Curry.Module.Prelude.C_Right(Curry.Module.Prelude.T4(x12)(x13)(Curry.Module.Prelude.op_46(x9)(x14)(st))(x15))
+c_'46'62'62'61_case_6 x9 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_'46'62'62'61_case_6(x9)(x)(st))(i)(xs)(st)
+c_'46'62'62'61_case_6 x9 x st = Curry.RunTimeSystem.patternFail("Transform..>>=_case_6")(x)
+
+
+
+c_transExpr_case_11 x1 x2 x3 (Curry.Module.Prelude.C_Right x4) st = Curry.Module.Transform.c_transExpr_case_10(x4)(st)
+c_transExpr_case_11 x1 x2 x3 x4@(Curry.Module.Prelude.C_Left x9) st = Curry.Module.Prelude.C_Left(x9)
+c_transExpr_case_11 x1 x2 x3 (Curry.Module.Prelude.C_EitherOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transExpr_case_11(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_transExpr_case_11 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Transform.transExpr_case_11")(x)
+
+
+
+c_transExpr_case_10 x4@(Curry.Module.Prelude.T4 x5 x6 x7 x8) st = Curry.Module.Prelude.C_Right(Curry.Module.Prelude.T3(x6)(Curry.Module.Prelude.c_apply(x7)(Curry.Module.Prelude.List)(st))(x8))
+c_transExpr_case_10 (Curry.Module.Prelude.T4Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transExpr_case_10(x)(st))(i)(xs)(st)
+c_transExpr_case_10 x st = Curry.RunTimeSystem.patternFail("Transform.transExpr_case_10")(x)
+
+
+
+c_transFuncType_case_13 x1 x2 x3 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.FlatCurry.C_FuncType(Curry.Module.Wrapper.c_tRef(st))(Curry.Module.Transform.c_rType(x2)(x3)(st))
+c_transFuncType_case_13 x1 x2 x3 x7 x8 x9@Curry.Module.Prelude.C_False st = Curry.Module.Transform.c_transFuncType_case_12(x1)(x2)(x7)(x8)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_transFuncType_case_13 x1 x2 x3 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFuncType_case_13(x1)(x2)(x3)(x7)(x8)(x)(st))(i)(xs)(st)
+c_transFuncType_case_13 x1 x2 x3 x7 x8 x st = Curry.RunTimeSystem.patternFail("Transform.transFuncType_case_13")(x)
+
+
+
+c_transFuncType_case_12 x1 x2 x7 x8 x9@Curry.Module.Prelude.C_True st = Curry.Module.FlatCurry.C_FuncType(Curry.Module.Transform.c_rType(x2)(x7)(st))(Curry.Module.Transform.c_transFuncType(Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x2)(x8)(st))
+c_transFuncType_case_12 x1 x2 x7 x8 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFuncType_case_12(x1)(x2)(x7)(x8)(x)(st))(i)(xs)(st)
+c_transFuncType_case_12 x1 x2 x7 x8 x st = Curry.RunTimeSystem.patternFail("Transform.transFuncType_case_12")(x)
+
+
+
+c_transFuncType_case_14 x2 x3 x1@Curry.Module.Prelude.C_Zero st = Curry.Module.FlatCurry.C_FuncType(Curry.Module.Wrapper.c_tRef(st))(Curry.Module.Transform.c_rType(x2)(x3)(st))
+c_transFuncType_case_14 x2 x3 (Curry.Module.Prelude.C_IntOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFuncType_case_14(x2)(x3)(x)(st))(i)(xs)(st)
+c_transFuncType_case_14 x2 x3 x st = Curry.RunTimeSystem.patternFail("Transform.transFuncType_case_14")(x)
+
+
+
+c_transFuncType_case_15 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = x3
+c_transFuncType_case_15 x1 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.FlatCurry.C_FuncType(Curry.Module.Wrapper.c_tRef(st))(Curry.Module.Transform.c_rType(x2)(x3)(st))
+c_transFuncType_case_15 x1 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFuncType_case_15(x1)(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_transFuncType_case_15 x1 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Transform.transFuncType_case_15")(x)
+
+
+
+c_transFunc'46isGlobal'4689_case_20 x1 (Curry.Module.FlatCurry.C_Comb x2 x3 x4) st = Curry.Module.Transform.c_transFunc'46isGlobal'4689_case_19(x3)(x4)(x2)(st)
+c_transFunc'46isGlobal'4689_case_20 x1 x2@(Curry.Module.FlatCurry.C_Var x13) st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_20 x1 x2@(Curry.Module.FlatCurry.C_Lit x14) st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_20 x1 x2@(Curry.Module.FlatCurry.C_Let x15 x16) st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_20 x1 x2@(Curry.Module.FlatCurry.C_Free x17 x18) st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_20 x1 x2@(Curry.Module.FlatCurry.C_Or x19 x20) st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_20 x1 x2@(Curry.Module.FlatCurry.C_Case x21 x22 x23) st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_20 x1 (Curry.Module.FlatCurry.C_ExprOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc'46isGlobal'4689_case_20(x1)(x)(st))(i)(xs)(st)
+c_transFunc'46isGlobal'4689_case_20 x1 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc.isGlobal.89_case_20")(x)
+
+
+
+c_transFunc'46isGlobal'4689_case_19 x3 x4 x2@Curry.Module.FlatCurry.C_FuncCall st = Curry.Module.Transform.c_transFunc'46isGlobal'4689_case_18(x3)(x4)(st)
+c_transFunc'46isGlobal'4689_case_19 x3 x4 x2@Curry.Module.FlatCurry.C_ConsCall st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_19 x3 x4 x2@(Curry.Module.FlatCurry.C_FuncPartCall x11) st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_19 x3 x4 x2@(Curry.Module.FlatCurry.C_ConsPartCall x12) st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_19 x3 x4 (Curry.Module.FlatCurry.C_CombTypeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc'46isGlobal'4689_case_19(x3)(x4)(x)(st))(i)(xs)(st)
+c_transFunc'46isGlobal'4689_case_19 x3 x4 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc.isGlobal.89_case_19")(x)
+
+
+
+c_transFunc'46isGlobal'4689_case_18 x3 x4@((Curry.Module.Prelude.:<) x5 x6) st = Curry.Module.Transform.c_transFunc'46isGlobal'4689_case_17(x3)(x6)(st)
+c_transFunc'46isGlobal'4689_case_18 x3 x4@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_18 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc'46isGlobal'4689_case_18(x3)(x)(st))(i)(xs)(st)
+c_transFunc'46isGlobal'4689_case_18 x3 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc.isGlobal.89_case_18")(x)
+
+
+
+c_transFunc'46isGlobal'4689_case_17 x3 x6@((Curry.Module.Prelude.:<) x7 x8) st = Curry.Module.Transform.c_transFunc'46isGlobal'4689_case_16(x3)(x8)(st)
+c_transFunc'46isGlobal'4689_case_17 x3 x6@Curry.Module.Prelude.List st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_17 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc'46isGlobal'4689_case_17(x3)(x)(st))(i)(xs)(st)
+c_transFunc'46isGlobal'4689_case_17 x3 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc.isGlobal.89_case_17")(x)
+
+
+
+c_transFunc'46isGlobal'4689_case_16 x3 x8@Curry.Module.Prelude.List st = Curry.Module.Prelude.op_61_61(x3)(Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('G'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))(Curry.Module.Prelude.List)))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))(Curry.Module.Prelude.List))))))))(st)
+c_transFunc'46isGlobal'4689_case_16 x3 x8@((Curry.Module.Prelude.:<) x9 x10) st = Curry.Module.Prelude.C_False
+c_transFunc'46isGlobal'4689_case_16 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc'46isGlobal'4689_case_16(x3)(x)(st))(i)(xs)(st)
+c_transFunc'46isGlobal'4689_case_16 x3 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc.isGlobal.89_case_16")(x)
+
+
+
+c_transFunc_case_31 x1 x2 x3 x4 x5 x6 x7 x9 x10 x12 x13 x14@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.List
+c_transFunc_case_31 x1 x2 x3 x4 x5 x6 x7 x9 x10 x12 x13 x14@Curry.Module.Prelude.C_False st = Curry.Module.Transform.c_transFunc_case_30(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x9)(x10)(x12)(x13)(Curry.Module.Prelude.op_38_38(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_isExternal(st))(x3)(st))(Curry.Module.Transform.c_transFunc'46isIO'4689(x9)(st))(st))(st)
+c_transFunc_case_31 x1 x2 x3 x4 x5 x6 x7 x9 x10 x12 x13 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc_case_31(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x9)(x10)(x12)(x13)(x)(st))(i)(xs)(st)
+c_transFunc_case_31 x1 x2 x3 x4 x5 x6 x7 x9 x10 x12 x13 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc_case_31")(x)
+
+
+
+c_transFunc_case_30 x1 x2 x3 x4 x5 x6 x7 x9 x10 x12 x13 x14@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Func(x13)(x5)(x6)(Curry.Module.Transform.c_transFuncType(Curry.Module.Prelude.op_45(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x1)(x7)(st))))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Rule(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(Curry.Module.Prelude.c_enumFromTo(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(x5)(st))(st))))(Curry.Module.Wrapper.c_collapse(Curry.Module.Wrapper.c_ref(st))(Curry.Module.Transform.c_transFunc_case_29(x4)(x5)(x9)(Curry.Module.Transform.c_transFunc'46isComplexIO'4689(x4)(x9)(st))(st))(st))(st))(st))(Curry.Module.Prelude.List)
+c_transFunc_case_30 x1 x2 x3 x4 x5 x6 x7 x9 x10 x12 x13 x14@Curry.Module.Prelude.C_False st = Curry.Module.Transform.c_transFunc_case_27(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x10)(x12)(x13)(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_isExternal(st))(x3)(st))(st)
+c_transFunc_case_30 x1 x2 x3 x4 x5 x6 x7 x9 x10 x12 x13 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc_case_30(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x9)(x10)(x12)(x13)(x)(st))(i)(xs)(st)
+c_transFunc_case_30 x1 x2 x3 x4 x5 x6 x7 x9 x10 x12 x13 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc_case_30")(x)
+
+
+
+c_transFunc_case_27 x1 x2 x3 x4 x5 x6 x7 x10 x12 x13 x14@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Func(x13)(Curry.Module.Prelude.op_43(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x6)(Curry.Module.Transform.c_transFuncType(x5)(x1)(x7)(st))))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Rule(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(x12)(st))))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_collapse(Curry.Module.Wrapper.c_ref(st))))(Curry.Module.Transform.c_transFunc'46extCall'4689(x4)(Curry.Module.Prelude.op_43(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st))(st))(st))(Curry.Module.Prelude.List)
+c_transFunc_case_27 x1 x2 x3 x4 x5 x6 x7 x10 x12 x13 x14@Curry.Module.Prelude.C_False st = Curry.Module.Transform.c_transFunc_case_26(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x10)(x12)(x13)(Curry.Module.Transform.c_transFunc'46isGlobal'4689(x3)(st))(st)
+c_transFunc_case_27 x1 x2 x3 x4 x5 x6 x7 x10 x12 x13 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc_case_27(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x10)(x12)(x13)(x)(st))(i)(xs)(st)
+c_transFunc_case_27 x1 x2 x3 x4 x5 x6 x7 x10 x12 x13 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc_case_27")(x)
+
+
+
+c_transFunc_case_26 x1 x2 x3 x4 x5 x6 x7 x10 x12 x13 x14@Curry.Module.Prelude.C_True st = Curry.Module.Transform.c_transFunc_case_25(x1)(x3)(x4)(x5)(x6)(x7)(x12)(x13)(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.pf(Curry.Module.FlatCurryGoodies.c_trExpr(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(Curry.Module.Prelude.C_False)))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(Curry.Module.Prelude.C_True)))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_transFunc'46_'35lambda19))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Transform.c_transFunc'46_'35lambda20))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Transform.c_transFunc'46_'35lambda21))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_38_38))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa))(Curry.Module.Prelude.cp(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))))(Curry.Module.Transform.c_transFunc'46_'35lambda22))(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Transform.c_transFunc'46_'35lambda23))))(Curry.Module.Prelude.c_head(Curry.Module.FlatCurryGoodies.c_combArgs(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_funcBody(st))(x3)(st))(st))(st))(st))(st)
+c_transFunc_case_26 x1 x2 x3 x4 x5 x6 x7 x10 x12 x13 x14@Curry.Module.Prelude.C_False st = Curry.Module.Transform.c_transFunc_case_24(x1)(x2)(x3)(x5)(x6)(x7)(x10)(x12)(x13)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_transFunc_case_26 x1 x2 x3 x4 x5 x6 x7 x10 x12 x13 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc_case_26(x1)(x2)(x3)(x4)(x5)(x6)(x7)(x10)(x12)(x13)(x)(st))(i)(xs)(st)
+c_transFunc_case_26 x1 x2 x3 x4 x5 x6 x7 x10 x12 x13 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc_case_26")(x)
+
+
+
+c_transFunc_case_24 x1 x2 x3 x5 x6 x7 x10 x12 x13 x14@Curry.Module.Prelude.C_True st = Curry.Module.Transform.c_transFunc_case_23(x1)(x2)(x3)(x5)(x6)(x7)(x10)(x12)(x13)(Curry.Module.Transform.c_transExpr(x2)(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_funcBody(st))(x3)(st))(Curry.Module.Transform.c_transFunc_case_21(x10)(Curry.Module.Prelude.c_null(x10)(st))(st))(st))(st)
+c_transFunc_case_24 x1 x2 x3 x5 x6 x7 x10 x12 x13 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc_case_24(x1)(x2)(x3)(x5)(x6)(x7)(x10)(x12)(x13)(x)(st))(i)(xs)(st)
+c_transFunc_case_24 x1 x2 x3 x5 x6 x7 x10 x12 x13 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc_case_24")(x)
+
+
+
+c_transFunc_case_23 x1 x2 x3 x5 x6 x7 x10 x12 x13 x14@(Curry.Module.Prelude.C_Right x16) st = Curry.Module.Transform.c_transFunc_case_22(x1)(x3)(x5)(x16)(st)
+c_transFunc_case_23 x1 x2 x3 x5 x6 x7 x10 x12 x13 x14@(Curry.Module.Prelude.C_Left x20) st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Func(x13)(Curry.Module.Prelude.op_43(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x6)(Curry.Module.Transform.c_transFuncType(x5)(x1)(x7)(st))))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Rule(x12)))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_errorCall))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_fst(x13)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_snd(x13)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))(x20))(st)))(st))(st))(st))(st))(Curry.Module.Prelude.List)
+c_transFunc_case_23 x1 x2 x3 x5 x6 x7 x10 x12 x13 (Curry.Module.Prelude.C_EitherOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc_case_23(x1)(x2)(x3)(x5)(x6)(x7)(x10)(x12)(x13)(x)(st))(i)(xs)(st)
+c_transFunc_case_23 x1 x2 x3 x5 x6 x7 x10 x12 x13 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc_case_23")(x)
+
+
+
+c_transFunc_case_21 x10 x11@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))
+c_transFunc_case_21 x10 x11@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43(Curry.Module.Integer.c_maxlist(x10)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)
+c_transFunc_case_21 x10 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc_case_21(x10)(x)(st))(i)(xs)(st)
+c_transFunc_case_21 x10 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc_case_21")(x)
+
+
+
+c_transFunc_case_22 x1 x3 x5 x16@(Curry.Module.Prelude.T3 x17 x18 x19) st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updFunc(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_newModNameQ))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_43))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transFuncType(x5)(x1)))(Curry.Module.FlatCurryGoodies.c_updRule(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_43_43))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(Curry.Module.Prelude.List))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_const(Curry.Module.Wrapper.c_event(x17)(Curry.Module.Wrapper.c_ref(st))(x18)(x19)(st))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(st))(st))(x3)(st))(Curry.Module.Prelude.List)
+c_transFunc_case_22 x1 x3 x5 (Curry.Module.Prelude.T3Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc_case_22(x1)(x3)(x5)(x)(st))(i)(xs)(st)
+c_transFunc_case_22 x1 x3 x5 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc_case_22")(x)
+
+
+
+c_transFunc_case_25 x1 x3 x4 x5 x6 x7 x12 x13 x14@Curry.Module.Prelude.C_True st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Func(x13)(Curry.Module.Prelude.op_43(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(x6)(Curry.Module.Transform.c_transFuncType(x5)(x1)(x7)(st))))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Rule(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(x12)(st))))(Curry.Module.Prelude.op_36(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_collapse(Curry.Module.Wrapper.c_ref(st))))(Curry.Module.Transform.c_transFunc'46extCall'4689(x4)(Curry.Module.Prelude.op_43(x5)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st))(st))(st))(st))(Curry.Module.Prelude.List)
+c_transFunc_case_25 x1 x3 x4 x5 x6 x7 x12 x13 x14@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.c_error(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_fst(x4)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_snd(x4)(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('z'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('w'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('v'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('\n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('v'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))(Curry.Module.Prelude.List)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))(st)))(st))(st)
+c_transFunc_case_25 x1 x3 x4 x5 x6 x7 x12 x13 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc_case_25(x1)(x3)(x4)(x5)(x6)(x7)(x12)(x13)(x)(st))(i)(xs)(st)
+c_transFunc_case_25 x1 x3 x4 x5 x6 x7 x12 x13 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc_case_25")(x)
+
+
+
+c_transFunc_case_29 x4 x5 x9 x10@Curry.Module.Prelude.C_True st = Curry.Module.Wrapper.c_extIO(Curry.Module.Wrapper.c_safeIOResult(Curry.Module.Transform.c_transFunc'46extCall'4689(x4)(x5)(st))(st))(st)
+c_transFunc_case_29 x4 x5 x9 x10@Curry.Module.Prelude.C_False st = Curry.Module.Transform.c_transFunc_case_28(x4)(x5)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_transFunc_case_29 x4 x5 x9 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc_case_29(x4)(x5)(x9)(x)(st))(i)(xs)(st)
+c_transFunc_case_29 x4 x5 x9 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc_case_29")(x)
+
+
+
+c_transFunc_case_28 x4 x5 x6@Curry.Module.Prelude.C_True st = Curry.Module.Wrapper.c_extIO(Curry.Module.Transform.c_transFunc'46extCall'4689(x4)(x5)(st))(st)
+c_transFunc_case_28 x4 x5 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transFunc_case_28(x4)(x5)(x)(st))(i)(xs)(st)
+c_transFunc_case_28 x4 x5 x st = Curry.RunTimeSystem.patternFail("Transform.transFunc_case_28")(x)
+
+
+
+c_when_case_32 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_apply(x2)(x3)(st)
+c_when_case_32 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = x3
+c_when_case_32 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_when_case_32(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_when_case_32 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Transform.when_case_32")(x)
+
+
+
+c_transType_case_34 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.op_36(Curry.Module.FlatCurryGoodies.c_updTypeName(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_newModNameQ))(st))(Curry.Module.Prelude.c_apply(Curry.Module.FlatCurryGoodies.c_updTypeConsDecls(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.FlatCurryGoodies.c_updCons(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_newModNameQ))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Transform.c_rType(x1)))))(st))))(st))(x2)(st))(st)
+c_transType_case_34 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Transform.c_transType_case_33(x2)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_transType_case_34 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transType_case_34(x1)(x2)(x)(st))(i)(xs)(st)
+c_transType_case_34 x1 x2 x st = Curry.RunTimeSystem.patternFail("Transform.transType_case_34")(x)
+
+
+
+c_transType_case_33 x2 x3@Curry.Module.Prelude.C_True st = x2
+c_transType_case_33 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transType_case_33(x2)(x)(st))(i)(xs)(st)
+c_transType_case_33 x2 x st = Curry.RunTimeSystem.patternFail("Transform.transType_case_33")(x)
+
+
+
+c_transProg'46fixDependence'4633_case_36 x1 x2 (Curry.Module.Prelude.T2 x3 x4) st = Curry.Module.Transform.c_transProg'46fixDependence'4633_case_35(x1)(x4)(x3)(st)
+c_transProg'46fixDependence'4633_case_36 x1 x2 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transProg'46fixDependence'4633_case_36(x1)(x2)(x)(st))(i)(xs)(st)
+c_transProg'46fixDependence'4633_case_36 x1 x2 x st = Curry.RunTimeSystem.patternFail("Transform.transProg.fixDependence.33_case_36")(x)
+
+
+
+c_transProg'46fixDependence'4633_case_35 x1 x4 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.T2(x1)(x4)
+c_transProg'46fixDependence'4633_case_35 x1 x4 x3@((Curry.Module.Prelude.:<) x5 x6) st = Curry.Module.Transform.c_transProg'46fixDependence'4633(Curry.Module.Prelude.op_43_43(x1)((Curry.Module.Prelude.:<)(x5)(x6))(st))(x4)(st)
+c_transProg'46fixDependence'4633_case_35 x1 x4 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transProg'46fixDependence'4633_case_35(x1)(x4)(x)(st))(i)(xs)(st)
+c_transProg'46fixDependence'4633_case_35 x1 x4 x st = Curry.RunTimeSystem.patternFail("Transform.transProg.fixDependence.33_case_35")(x)
+
+
+
+c_transform'46myObsolete'4610'46_'35lambda8_case_37 x1 x2 x3 x4 x5 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.c_return(x6)(st)
+c_transform'46myObsolete'4610'46_'35lambda8_case_37 x1 x2 x3 x4 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_62_62(Curry.Module.Make.c_unless(x5)(Curry.Module.Prelude.c_putStrLn(Curry.Module.Prelude.op_43_43(x2)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(' '))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))))))))))))))))))(st))(st))(st))(Curry.Module.Prelude.op_62_62_61(Curry.Module.Transform.c_transform'46readTypes'4610((Curry.Module.Prelude.:<)(Curry.Module.Prelude.op_43_43(x4)(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_addFcy(st))(x2)(st))(st))(Curry.Module.Prelude.List))(st))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transform'46myObsolete'4610'46_'35lambda8'46_'35lambda9))(st))(st)
+c_transform'46myObsolete'4610'46_'35lambda8_case_37 x1 x2 x3 x4 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transform'46myObsolete'4610'46_'35lambda8_case_37(x1)(x2)(x3)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_transform'46myObsolete'4610'46_'35lambda8_case_37 x1 x2 x3 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("Transform.transform.myObsolete.10._#lambda8_case_37")(x)
+
+
+
+c_transform_case_38 x1 x3 x4 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Transform.c_transform'46_'35lambda5)
+c_transform_case_38 x1 x3 x4 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Transform.c_transform'46myObsolete'4610(x1)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Make.c_obsolete(x3)(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transform'46_'35lambda7(x4)))((Curry.Module.Prelude.:<)(Curry.Module.Wrapper.c_addFcy(st))(Curry.Module.Prelude.List))(Curry.Module.Prelude.pf(Curry.Module.Transform.c_transform'46readTypes'4610))))(x4)(x3))
+c_transform_case_38 x1 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Transform.c_transform_case_38(x1)(x3)(x4)(x)(st))(i)(xs)(st)
+c_transform_case_38 x1 x3 x4 x st = Curry.RunTimeSystem.patternFail("Transform.transform_case_38")(x)
+
+
diff --git a/dist/build/prophecy/prophecy-tmp/Curry/Module/Wrapper.hs b/dist/build/prophecy/prophecy-tmp/Curry/Module/Wrapper.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/prophecy/prophecy-tmp/Curry/Module/Wrapper.hs
@@ -0,0 +1,402 @@
+{-# OPTIONS -cpp #-}
+
+{-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-}
+
+module Curry.Module.Wrapper (module Curry.Module.Wrapper) where
+
+import Curry.RunTimeSystem
+import Curry.Module.FileGoodies
+import Curry.Module.FlatCurry
+import Curry.Module.Prelude
+
+
+
+-- begin included
+
+
+
+-- end included
+
+c_prelude :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_prelude st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('P'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))
+
+
+
+c_eventMod :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_eventMod st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('C'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('E'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('v'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))))))
+
+
+
+c_oracle :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_oracle st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))
+
+
+
+c_ioexts :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_ioexts st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('I'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('E'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))(Curry.Module.Prelude.List))))))
+
+
+
+c_newModName :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_newModName x1 st = let {x2 = Curry.Module.FileGoodies.c_splitDirectoryBaseName(x1)(st)} in let {x3 = Curry.Module.Wrapper.c_newModName'46_'35selFP3'35d(x2)(st)} in Curry.Module.Prelude.op_43_43(Curry.Module.Wrapper.c_newModName_case_12(x3)(st))(Curry.Module.Prelude.op_43_43(Curry.Module.Wrapper.c_oracle(st))(Curry.Module.Wrapper.c_newModName'46_'35selFP4'35f(x2)(st))(st))(st)
+
+
+
+c_newModName'46_'35selFP3'35d :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_newModName'46_'35selFP3'35d x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_newModName'46_'35selFP3'35d (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_newModName'46_'35selFP3'35d(x)(st))(i)(xs)(st)
+c_newModName'46_'35selFP3'35d x st = Curry.RunTimeSystem.patternFail("Wrapper.newModName._#selFP3#d")(x)
+
+
+
+c_newModName'46_'35selFP4'35f :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_newModName'46_'35selFP4'35f x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_newModName'46_'35selFP4'35f (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_newModName'46_'35selFP4'35f(x)(st))(i)(xs)(st)
+c_newModName'46_'35selFP4'35f x st = Curry.RunTimeSystem.patternFail("Wrapper.newModName._#selFP4#f")(x)
+
+
+
+c_newModNameQ :: (Curry t0) => (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t0) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) t0
+c_newModNameQ x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_newModName(x2)(st))(x3)
+c_newModNameQ (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_newModNameQ(x)(st))(i)(xs)(st)
+c_newModNameQ x st = Curry.RunTimeSystem.patternFail("Wrapper.newModNameQ")(x)
+
+
+
+c_tRef :: Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_TypeExpr
+c_tRef st = Curry.Module.FlatCurry.C_TCons(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_eventMod(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('R'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))(Curry.Module.Prelude.List)))))(Curry.Module.Prelude.List)
+
+
+
+c_tR :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_TypeExpr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_TypeExpr)
+c_tR st = Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_FuncType(Curry.Module.Wrapper.c_tRef(st)))
+
+
+
+c_lET :: (Curry.Module.Prelude.List (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int Curry.Module.FlatCurry.C_Expr)) -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_lET x1 x2 st = Curry.Module.Wrapper.c_lET_case_9(x1)(x2)(Curry.Module.Prelude.c_null(x1)(st))(st)
+
+
+
+c_ref :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_ref st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi)
+
+
+
+c_flatFunc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr))
+c_flatFunc st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pc))(Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_FuncCall))
+
+
+
+c_flatCons :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr))
+c_flatCons st = Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pc))(Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_ConsCall))
+
+
+
+c_func :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr)
+c_func x1 st = Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_flatFunc(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_eventMod(st))(x1))(st)
+
+
+
+c_list :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr)
+c_list st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_foldr(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Wrapper.c_colon))(Curry.Module.Wrapper.c_nil(st)))
+
+
+
+c_char :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Char -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr)
+c_char st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Lit))(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Charc))(st)
+
+
+
+c_string :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr)
+c_string st = Curry.Module.Prelude.op_46(Curry.Module.Wrapper.c_list(st))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Wrapper.c_char(st))))(st)
+
+
+
+c_nil :: Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_nil st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_flatCons(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('['))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(']'))(Curry.Module.Prelude.List))))(st))(Curry.Module.Prelude.List)(st)
+
+
+
+c_colon :: Curry.Module.FlatCurry.C_Expr -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_colon x1 x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_flatCons(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(':'))(Curry.Module.Prelude.List)))(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+
+
+
+c_run :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_run x1 x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_func((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))(Curry.Module.Prelude.List))))(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_string(st))(x1)(st))((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+
+
+
+c_event :: (Curry t0) => (Curry.Module.Prelude.List t0) -> Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_event x1@Curry.Module.Prelude.List x2 x3 x4 st = Curry.Module.Wrapper.c_unfold(x2)(x3)(x4)(st)
+c_event x1@((Curry.Module.Prelude.:<) x5 x6) x2 x3 x4 st = Curry.Module.Wrapper.c_collapse(x2)(x4)(st)
+c_event (Curry.Module.Prelude.ListOr i xs) x2 x3 x4 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_event(x)(x2)(x3)(x4)(st))(i)(xs)(st)
+c_event x x2 x3 x4 st = Curry.RunTimeSystem.patternFail("Wrapper.event")(x)
+
+
+
+c_collapse :: Curry.Module.Prelude.C_Int -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_collapse x1 x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_func((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))))(st))((Curry.Module.Prelude.:<)(Curry.Module.FlatCurry.C_Var(x1))((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+
+
+
+c_closeRef :: Curry.Module.Prelude.C_Int -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_closeRef x1 x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_func((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('R'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))(Curry.Module.Prelude.List)))))))))(st))((Curry.Module.Prelude.:<)(Curry.Module.FlatCurry.C_Var(x1))((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+
+
+
+c_extIO :: Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_extIO x1 st = Curry.Module.Wrapper.c_listFunc(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_oracle(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('b'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('w'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))(Curry.Module.Prelude.List))))))))))))))((Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List))(st)
+
+
+
+c_unfold :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_unfold x1 x2 x3 st = Curry.Module.Wrapper.c_unfold_case_8(x1)(x2)(x3)(Curry.Module.Prelude.c_null(x2)(st))(st)
+
+
+
+c_replace :: Curry.Module.Prelude.C_Int -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_replace x1 x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_func((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))(st))((Curry.Module.Prelude.:<)(Curry.Module.FlatCurry.C_Var(x1))((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+
+
+
+c_expand :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Int) -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_expand x1 x2 x3 st = Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_func((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('x'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))(Curry.Module.Prelude.List)))))))(st))((Curry.Module.Prelude.:<)(Curry.Module.FlatCurry.C_Var(x1))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_list(st))(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pc(Curry.Module.FlatCurry.C_Var))(x2)(st))(st))((Curry.Module.Prelude.:<)(x3)(Curry.Module.Prelude.List))))(st)
+
+
+
+c_fresh :: Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_fresh st = Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_func((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))(Curry.Module.Prelude.List))))))(st))((Curry.Module.Prelude.:<)(Curry.Module.Wrapper.c_unit(st))(Curry.Module.Prelude.List))(st)
+
+
+
+c_unit :: Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_unit st = Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_ConsCall)(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('('))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char(')'))(Curry.Module.Prelude.List))))(Curry.Module.Prelude.List)
+
+
+
+c_apply :: Curry.Module.FlatCurry.C_Expr -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_apply x1@(Curry.Module.FlatCurry.C_Comb x3 x4 x5) x2 st = Curry.Module.Wrapper.c_apply_case_7(x1)(x2)(x4)(x5)(x3)(st)
+c_apply x1@(Curry.Module.FlatCurry.C_Var x8) x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_flatFunc(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+c_apply x1@(Curry.Module.FlatCurry.C_Lit x9) x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_flatFunc(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+c_apply x1@(Curry.Module.FlatCurry.C_Let x10 x11) x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_flatFunc(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+c_apply x1@(Curry.Module.FlatCurry.C_Free x12 x13) x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_flatFunc(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+c_apply x1@(Curry.Module.FlatCurry.C_Or x14 x15) x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_flatFunc(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+c_apply x1@(Curry.Module.FlatCurry.C_Case x16 x17 x18) x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_flatFunc(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+c_apply (Curry.Module.FlatCurry.C_ExprOr i xs) x2 st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_apply(x)(x2)(st))(i)(xs)(st)
+c_apply x x2 st = Curry.RunTimeSystem.patternFail("Wrapper.apply")(x)
+
+
+
+c_listFunc :: Curry.Module.Prelude.C_Int -> (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_listFunc x1 x2 x3 st = let {x4 = Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.c_length(x3)(st))(st)} in Curry.Module.Wrapper.c_listFunc_case_4(x2)(x3)(x4)(Curry.Module.Prelude.op_61_61(x4)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_compose :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr)
+c_compose st = Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_listFunc(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_oracle(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))))
+
+
+
+c_unknown :: Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_unknown x1 st = Curry.Module.Wrapper.c_listFunc(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_oracle(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('k'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('w'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))(Curry.Module.Prelude.List)))))))))((Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List))(st)
+
+
+
+c_oracleTry :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_oracleTry x1 x2 st = let {x3 = Curry.Module.Prelude.c_splitAt(Curry.Module.Prelude.op_45(Curry.Module.Prelude.c_length(x2)(st))(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(st))(x2)(st)} in Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_func((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('T'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List))))))))))(st))((Curry.Module.Prelude.:<)(Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_FuncPartCall(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))))(x1)(Curry.Module.Wrapper.c_oracleTry'46_'35selFP6'35argsf(x3)(st)))(Curry.Module.Wrapper.c_oracleTry'46_'35selFP7'35argst(x3)(st)))(st)
+
+
+
+c_oracleTry'46_'35selFP6'35argsf :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr
+c_oracleTry'46_'35selFP6'35argsf x1@(Curry.Module.Prelude.T2 x2 x3) st = x2
+c_oracleTry'46_'35selFP6'35argsf (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_oracleTry'46_'35selFP6'35argsf(x)(st))(i)(xs)(st)
+c_oracleTry'46_'35selFP6'35argsf x st = Curry.RunTimeSystem.patternFail("Wrapper.oracleTry._#selFP6#argsf")(x)
+
+
+
+c_oracleTry'46_'35selFP7'35argst :: (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) (Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr)) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr
+c_oracleTry'46_'35selFP7'35argst x1@(Curry.Module.Prelude.T2 x2 x3) st = x3
+c_oracleTry'46_'35selFP7'35argst (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_oracleTry'46_'35selFP7'35argst(x)(st))(i)(xs)(st)
+c_oracleTry'46_'35selFP7'35argst x st = Curry.RunTimeSystem.patternFail("Wrapper.oracleTry._#selFP7#argst")(x)
+
+
+
+c_partCons :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr))
+c_partCons st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Wrapper.c_apply))(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_partial(Curry.Module.Wrapper.c_pc(st))))(st)
+
+
+
+c_partFunc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim (Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr))
+c_partFunc st = Curry.Module.Prelude.op_46(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Wrapper.c_apply))(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_partial(Curry.Module.Wrapper.c_pf(st))))(st)
+
+
+
+c_pc :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr)
+c_pc st = Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_listFunc(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_oracle(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('C'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))(Curry.Module.Prelude.List)))))))))))
+
+
+
+c_pf :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr)
+c_pf st = Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_listFunc(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi)))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_oracle(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('F'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))(Curry.Module.Prelude.List)))))))))))
+
+
+
+c_partCall :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr)
+c_partCall st = Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_listFunc(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi)))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_oracle(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('C'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))(Curry.Module.Prelude.List)))))))))))
+
+
+
+c_partial :: (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr)) -> Curry.Module.Prelude.C_Int -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_partial x1 x2 st = Curry.Module.Prelude.op_36(Curry.Module.Prelude.op_46(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_foldr1(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Wrapper.c_partial'46_'35lambda4))))(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_map(Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_partial'46_'35lambda5))))(st))(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(Curry.Module.Prelude.c_zip(Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_reverse(st))(Curry.Module.Prelude.c_enumFromTo(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(x2)(st))(st))((Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.c_repeat(Curry.Module.Wrapper.c_partCall(st))(st)))(st))(st))(st)
+
+
+
+c_partial'46_'35lambda4 :: Curry.Module.FlatCurry.C_Expr -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_partial'46_'35lambda4 x1 x2 st = Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_compose(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+
+
+
+c_partial'46_'35lambda5 :: (Curry.Module.Prelude.T2 Curry.Module.Prelude.C_Int (Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr))) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_partial'46_'35lambda5 x1@(Curry.Module.Prelude.T2 x2 x3) st = Curry.Module.Wrapper.c_dotted(Curry.Module.Prelude.op_45(x2)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Prelude.c_apply(x3)(Curry.Module.Prelude.List)(st))(st)
+c_partial'46_'35lambda5 (Curry.Module.Prelude.T2Or i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_partial'46_'35lambda5(x)(st))(i)(xs)(st)
+c_partial'46_'35lambda5 x st = Curry.RunTimeSystem.patternFail("Wrapper.partial._#lambda5")(x)
+
+
+
+c_dotted :: Curry.Module.Prelude.C_Int -> Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_dotted x1 x2 st = Curry.Module.Wrapper.c_dotted_case_2(x1)(x2)(Curry.Module.Prelude.op_61_61(x1)(Curry.Module.Prelude.C_Zero)(st))(st)
+
+
+
+c_inOraclePartCall :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.FlatCurry.C_Expr) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr)
+c_inOraclePartCall x1 st = Curry.Module.Prelude.pf(Curry.Module.Wrapper.c_listFunc(Curry.Module.Wrapper.c_arityInOracle(x1)(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_oracle(st))(x1)))
+
+
+
+c_errorCall :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_errorCall x1 st = Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_FuncCall)(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))(Curry.Module.Prelude.List)))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_string(st))(x1)(st))(Curry.Module.Prelude.List))
+
+
+
+c_safeIOResult :: Curry.Module.FlatCurry.C_Expr -> Curry.RunTimeSystem.State -> Curry.Module.FlatCurry.C_Expr
+c_safeIOResult x1 st = Curry.Module.Wrapper.c_listFunc(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_oracle(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('I'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('R'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))(Curry.Module.Prelude.List))))))))))))))((Curry.Module.Prelude.:<)(x1)(Curry.Module.Prelude.List))(st)
+
+
+
+c_specialIOs :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_specialIOs st = Curry.Module.Prelude.c_zip(Curry.Module.Prelude.c_repeat(Curry.Module.Wrapper.c_prelude(st))(st))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))(Curry.Module.Prelude.List)))))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('F'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))(Curry.Module.Prelude.List))))))))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('g'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('S'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('T'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List))))))))))))))(Curry.Module.Prelude.List))))(st)
+
+
+
+c_implementedInOracle :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.List (Curry.Module.Prelude.T2 (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char))
+c_implementedInOracle st = (Curry.Module.Prelude.:<)(Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('U'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))(Curry.Module.Prelude.List)))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('P'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('I'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))(Curry.Module.Prelude.List))))))))))))))))))))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.T2((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('M'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))(Curry.Module.Prelude.List)))))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('d'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('N'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('F'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('I'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))(Curry.Module.Prelude.List))))))))))))))))))(Curry.Module.Prelude.c_zip(Curry.Module.Prelude.c_repeat(Curry.Module.Wrapper.c_prelude(st))(st))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List))))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('$'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('!'))(Curry.Module.Prelude.List)))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('$'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('!'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('!'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('$'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('#'))(Curry.Module.Prelude.List)))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('$'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('#'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('#'))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('>'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('>'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('='))(Curry.Module.Prelude.List))))((Curry.Module.Prelude.:<)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('t'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('h'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('F'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))(Curry.Module.Prelude.List))))))))))(Curry.Module.Prelude.List))))))))(st)))
+
+
+
+c_arityInOracle :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.C_Int
+c_arityInOracle x1 st = Curry.Module.Wrapper.c_arityInOracle_case_0(x1)(Curry.Module.Prelude.op_61_61(x1)((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('i'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('_'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('u'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('n'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('s'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('P'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('e'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('o'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('r'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('m'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('I'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('O'))(Curry.Module.Prelude.List)))))))))))))))))))))(st))(st)
+
+
+
+c_addOrc :: (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> (Curry.Module.Prelude.C_Maybe (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)) -> (Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char
+c_addOrc x1 x2 x3 st = Curry.Module.Prelude.op_43_43(Curry.Module.Prelude.c_maybe(x1)(Curry.Module.Prelude.pf(Curry.Module.Prelude.c_id))(x2)(st))(Curry.Module.Wrapper.c_newModName(x3)(st))(st)
+
+
+
+c_addFcy :: Curry.RunTimeSystem.State -> Curry.Module.Prelude.Prim ((Curry.Module.Prelude.List Curry.Module.Prelude.C_Char) -> Curry.RunTimeSystem.State -> Curry.Module.Prelude.List Curry.Module.Prelude.C_Char)
+c_addFcy st = Curry.Module.Prelude.pf(Curry.Module.Prelude.c_flip(Curry.Module.Prelude.cp(Curry.Module.Prelude.pa)(Curry.Module.Prelude.cp(Curry.Module.Prelude.pf))(Curry.Module.Prelude.op_43_43))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('.'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('f'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('c'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List))))))
+
+
+
+c_arityInOracle_case_0 x1 x2@Curry.Module.Prelude.C_True st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_O(Curry.Module.Prelude.C_IHi))
+c_arityInOracle_case_0 x1 x2@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_I(Curry.Module.Prelude.C_IHi))
+c_arityInOracle_case_0 x1 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_arityInOracle_case_0(x1)(x)(st))(i)(xs)(st)
+c_arityInOracle_case_0 x1 x st = Curry.RunTimeSystem.patternFail("Wrapper.arityInOracle_case_0")(x)
+
+
+
+c_dotted_case_2 x1 x2 x3@Curry.Module.Prelude.C_True st = x2
+c_dotted_case_2 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.Wrapper.c_dotted_case_1(x1)(x2)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_dotted_case_2 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_dotted_case_2(x1)(x2)(x)(st))(i)(xs)(st)
+c_dotted_case_2 x1 x2 x st = Curry.RunTimeSystem.patternFail("Wrapper.dotted_case_2")(x)
+
+
+
+c_dotted_case_1 x1 x2 x3@Curry.Module.Prelude.C_True st = Curry.Module.Wrapper.c_dotted(Curry.Module.Prelude.op_45(x1)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_compose(st))((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List))(st))(st)
+c_dotted_case_1 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_dotted_case_1(x1)(x2)(x)(st))(i)(xs)(st)
+c_dotted_case_1 x1 x2 x st = Curry.RunTimeSystem.patternFail("Wrapper.dotted_case_1")(x)
+
+
+
+c_listFunc_case_4 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_FuncCall)(x2)(x3)
+c_listFunc_case_4 x2 x3 x4 x5@Curry.Module.Prelude.C_False st = Curry.Module.Wrapper.c_listFunc_case_3(x2)(x3)(x4)(Curry.Module.Prelude.c_otherwise(st))(st)
+c_listFunc_case_4 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_listFunc_case_4(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_listFunc_case_4 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Wrapper.listFunc_case_4")(x)
+
+
+
+c_listFunc_case_3 x2 x3 x4 x5@Curry.Module.Prelude.C_True st = Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_FuncPartCall(x4))(x2)(x3)
+c_listFunc_case_3 x2 x3 x4 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_listFunc_case_3(x2)(x3)(x4)(x)(st))(i)(xs)(st)
+c_listFunc_case_3 x2 x3 x4 x st = Curry.RunTimeSystem.patternFail("Wrapper.listFunc_case_3")(x)
+
+
+
+c_apply_case_7 x1 x2 x4 x5 x3@(Curry.Module.FlatCurry.C_FuncPartCall x6) st = Curry.Module.Wrapper.c_apply_case_6(x2)(x4)(x5)(x6)(Curry.Module.Prelude.op_61_61(x6)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)
+c_apply_case_7 x1 x2 x4 x5 x3@(Curry.Module.FlatCurry.C_ConsPartCall x7) st = Curry.Module.Wrapper.c_apply_case_5(x2)(x4)(x5)(x7)(Curry.Module.Prelude.op_61_61(x7)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st))(st)
+c_apply_case_7 x1 x2 x4 x5 x3@Curry.Module.FlatCurry.C_FuncCall st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_flatFunc(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+c_apply_case_7 x1 x2 x4 x5 x3@Curry.Module.FlatCurry.C_ConsCall st = Curry.Module.Prelude.c_apply(Curry.Module.Prelude.c_apply(Curry.Module.Wrapper.c_flatFunc(st))(Curry.Module.Prelude.T2(Curry.Module.Wrapper.c_prelude(st))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('a'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('p'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('l'))((Curry.Module.Prelude.:<)(Curry.Module.Prelude.C_Char('y'))(Curry.Module.Prelude.List)))))))(st))((Curry.Module.Prelude.:<)(x1)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List)))(st)
+c_apply_case_7 x1 x2 x4 x5 (Curry.Module.FlatCurry.C_CombTypeOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_apply_case_7(x1)(x2)(x4)(x5)(x)(st))(i)(xs)(st)
+c_apply_case_7 x1 x2 x4 x5 x st = Curry.RunTimeSystem.patternFail("Wrapper.apply_case_7")(x)
+
+
+
+c_apply_case_5 x2 x4 x5 x7 x8@Curry.Module.Prelude.C_True st = Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_ConsCall)(x4)(Curry.Module.Prelude.op_43_43(x5)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List))(st))
+c_apply_case_5 x2 x4 x5 x7 x8@Curry.Module.Prelude.C_False st = Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_ConsPartCall(Curry.Module.Prelude.op_45(x7)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)))(x4)(Curry.Module.Prelude.op_43_43(x5)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List))(st))
+c_apply_case_5 x2 x4 x5 x7 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_apply_case_5(x2)(x4)(x5)(x7)(x)(st))(i)(xs)(st)
+c_apply_case_5 x2 x4 x5 x7 x st = Curry.RunTimeSystem.patternFail("Wrapper.apply_case_5")(x)
+
+
+
+c_apply_case_6 x2 x4 x5 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_FuncCall)(x4)(Curry.Module.Prelude.op_43_43(x5)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List))(st))
+c_apply_case_6 x2 x4 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.FlatCurry.C_Comb(Curry.Module.FlatCurry.C_FuncPartCall(Curry.Module.Prelude.op_45(x6)(Curry.Module.Prelude.C_Pos(Curry.Module.Prelude.C_IHi))(st)))(x4)(Curry.Module.Prelude.op_43_43(x5)((Curry.Module.Prelude.:<)(x2)(Curry.Module.Prelude.List))(st))
+c_apply_case_6 x2 x4 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_apply_case_6(x2)(x4)(x5)(x6)(x)(st))(i)(xs)(st)
+c_apply_case_6 x2 x4 x5 x6 x st = Curry.RunTimeSystem.patternFail("Wrapper.apply_case_6")(x)
+
+
+
+c_unfold_case_8 x1 x2 x3 x4@Curry.Module.Prelude.C_True st = Curry.Module.Wrapper.c_replace(x1)(x3)(st)
+c_unfold_case_8 x1 x2 x3 x4@Curry.Module.Prelude.C_False st = Curry.Module.Wrapper.c_lET(Curry.Module.Prelude.c_zip(x2)(Curry.Module.Prelude.c_repeat(Curry.Module.Wrapper.c_fresh(st))(st))(st))(Curry.Module.Wrapper.c_expand(x1)(x2)(x3)(st))(st)
+c_unfold_case_8 x1 x2 x3 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_unfold_case_8(x1)(x2)(x3)(x)(st))(i)(xs)(st)
+c_unfold_case_8 x1 x2 x3 x st = Curry.RunTimeSystem.patternFail("Wrapper.unfold_case_8")(x)
+
+
+
+c_lET_case_9 x1 x2 x3@Curry.Module.Prelude.C_True st = x2
+c_lET_case_9 x1 x2 x3@Curry.Module.Prelude.C_False st = Curry.Module.FlatCurry.C_Let(x1)(x2)
+c_lET_case_9 x1 x2 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_lET_case_9(x1)(x2)(x)(st))(i)(xs)(st)
+c_lET_case_9 x1 x2 x st = Curry.RunTimeSystem.patternFail("Wrapper.lET_case_9")(x)
+
+
+
+c_newModName_case_12 x3@((Curry.Module.Prelude.:<) x5 x6) st = Curry.Module.Wrapper.c_newModName_case_11(x3)(x5)(x6)(Curry.Module.Prelude.op_61_61(x5)(Curry.Module.Prelude.C_Char('.'))(st))(st)
+c_newModName_case_12 x3@Curry.Module.Prelude.List st = Curry.Module.Prelude.op_43_43(x3)((Curry.Module.Prelude.:<)(Curry.Module.FileGoodies.c_separatorChar(st))(Curry.Module.Prelude.List))(st)
+c_newModName_case_12 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_newModName_case_12(x)(st))(i)(xs)(st)
+c_newModName_case_12 x st = Curry.RunTimeSystem.patternFail("Wrapper.newModName_case_12")(x)
+
+
+
+c_newModName_case_11 x3 x5 x6 x7@Curry.Module.Prelude.C_True st = Curry.Module.Wrapper.c_newModName_case_10(x3)(x6)(st)
+c_newModName_case_11 x3 x5 x6 x7@Curry.Module.Prelude.C_False st = Curry.Module.Prelude.op_43_43(x3)((Curry.Module.Prelude.:<)(Curry.Module.FileGoodies.c_separatorChar(st))(Curry.Module.Prelude.List))(st)
+c_newModName_case_11 x3 x5 x6 (Curry.Module.Prelude.C_BoolOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_newModName_case_11(x3)(x5)(x6)(x)(st))(i)(xs)(st)
+c_newModName_case_11 x3 x5 x6 x st = Curry.RunTimeSystem.patternFail("Wrapper.newModName_case_11")(x)
+
+
+
+c_newModName_case_10 x3 x6@Curry.Module.Prelude.List st = Curry.Module.Prelude.List
+c_newModName_case_10 x3 x6@((Curry.Module.Prelude.:<) x7 x8) st = Curry.Module.Prelude.op_43_43(x3)((Curry.Module.Prelude.:<)(Curry.Module.FileGoodies.c_separatorChar(st))(Curry.Module.Prelude.List))(st)
+c_newModName_case_10 x3 (Curry.Module.Prelude.ListOr i xs) st = Curry.RunTimeSystem.mapOr(\ x st -> Curry.Module.Wrapper.c_newModName_case_10(x3)(x)(st))(i)(xs)(st)
+c_newModName_case_10 x3 x st = Curry.RunTimeSystem.patternFail("Wrapper.newModName_case_10")(x)
+
+
